怎么求 限定数组元素的各种组合之序列
如何求 限定数组元素的各种组合之序列?数组 a[0..15] 的值是 0--3 (各4个)随着这些值在数组中的位置的不同
如何求 限定数组元素的各种组合之序列?
数组 a[0..15] 的值是 0--3 (各4个)
随着这些值在数组中的位置的不同,可能组合出 6.3G 个不同数组
如果把这些数组按一定的规律排队,那么
某个数组,在队列中是第 多少个位置出现?
[解决办法]
为什么是6.3G?
1)如果说每一个元素都可以独立的在0~3之间取值的话,一共应当是4^16=4.3G种
2)如果说是之能在数组中挑4个元素来填0~3(其它位置置空),那么一共应当是P(16,4)=43680种,
怎么也凑不出LZ的6.3G。是不是笔误了?
假设说LZ需要的是第1种意思的话,则对每一个数组结果,我们可以将其视为一个4进制数的表达式,则这个4进制数的值就可以代表该结果的位置了。
[解决办法]只有4294967296种
排序要看什么规律了,如果从小到大,如第一个是[0,0,0,0,0,0,...]第二个是[1,0,0,0,0,0,...]
那么给出个数组,他在这个排序下的位置应该是a[0]*4^0+a[1]*4^1+...+a[15]*4^15+1,a[i]*4^i累加后再加1。