首页 > 关于组合几个数组的问题

关于组合几个数组的问题

数组一:A1 A2 A3 A4 A5
数组二:B1 B2 B3 B4 B5
数组三:C1 C2 C3 C4 C5
.
.
.
数组N: N1 N2 N3 N4 N5

根据上面的数组,组合五个数的数列:位置1 位置2 位置3 位置4 位置5。
标记为1的放在位置1 如 A1 B1 C1 ...放在第一位
标记为2的放在位置2 如 A2 B2 C2 ...放在第二位
.....依此类推

数列至少要有3位跟其他数列不同的数:
如:数列:A1 B2 A3 B4 C5
数列:B1 A2 B3 A4 C5

以下是组合的一部分:
A1 A2 A3 A4 A5
B1 B2 B3 B4 B5
C1 C2 C3 C4 C5
C1 C2 C3 C4 C5
A1 B2 A3 B4 C5
B1 A2 B3 A4 C5

用程序语言按以上要求分组,怎么写?? C/C++/java/php/JS


其实问题描述可以简化成,对所有5位N进制数进行分组,要求每组中任意两个数字至少有3位不同。

这个问题是有确定解的吗?

例如 X=00000, Y=00001, Z=11100

XY不能是一组,但是XZ可以是一组,YZ也可以是一组,那么Z究竟属于哪一组?

是否允许一组只有一个数字?如果不允许,还有解吗?如果允许,那么投机一点的方法,就是每个数字一组。

【热门文章】
【热门文章】