一个数组怎么样做到平均分布
一个数组怎么样做到平均分布
- 例如原数组[1,1,2]结果[1,2,1]
- 例如原数组[2,1,1,2]结果[1,2,1,2]
- 例如原数组[2,1,1,1,2]结果[1,2,1,2,1]
- 例如原数组[3,1,1,1,2]结果[1,2,1,3,1]
关于 LearnKu
代码如下:
类似这样的:
如果想打印出
[1, 1, 2, 1, 1]代码稍微改一下就可以了。
@Openset 2121有32个,但是你查一下,有很多中间是一样的
@dope2008 你用权重吧,计算每个值的权重,然后根据权重排序。
@Openset 比如A有5个,,,B有3个.....C有2个
正确来说,,,ABACABACBA
如果按权重 ABCABCABAA
@dope2008 不是啊,你权重怎么算的
@dope2008 A有5个,5个A对应的权重应分别为1/6,2/6,3/6,4/6,5/6。3个B权重分别为1/4,2/4,3/4。2个C权重分别为1/3,2/3。你按权重排一下试试。
@dope2008 ABACABACAB
@dope2008 如果只有一个值,那么它是没有权重的,作为填充值,补位就可以了。
@Openset 不懂,你有没有详细的?
@dope2008 6,4,3 最小公倍数是12,假设有12个位置。
1,2,3,4,5,6,7,8,9,10,11,12。5个A占用的位置分别是2,4,6,8,10。
现在还剩下1,3,5,7,9,11,12。3个B和2个C。
3个B占位,3,7,11。
还剩1,5,9,12。和2个C。
C占位5,9。结束。
1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12
一个思路: