1到64,64个数字,8×8排列,这样为一组,共8组;
要求:64个竖排中不能重复出现两个数字,比如第一列有1和9,那么后面的任何一列都不能同时出现1和9,否则就是无效的,请编程,C最好,如果是用在Excel上的也行。
如果直接写出来也可以,图片上传
没这么简单,也许可以算出一组,但这样后面会重复的
追答你没看懂
追问你自己写三组就知道了
追答1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64
2 3 4 5 6 7 8 1
10 11 12 13 14 15 16 9
18 19 20 21 22 23 24 17
26 27 28 29 30 31 32 25
34 35 36 37 38 39 40 33
42 43 44 45 46 47 48 41
50 51 52 53 54 55 56 49
58 59 60 61 62 63 64 57
3 4 5 6 7 8 1 2
11 12 13 14 15 16 9 10
19 20 21 22 23 24 17 18
27 28 29 30 31 32 25 26
35 36 37 38 39 40 33 34
43 44 45 46 47 48 41 42
51 52 53 54 55 56 49 50
59 60 61 62 63 64 57 58
我说过了,以1和9为例,第一列出现了,以后再出现,就是重复,你看179498647回答的就避免了这一情况,但是他别的地方还是出错了,象你说的这么简单的话,我完全没有必要花大价钱来悬赏
这个还没有试过,不知道你自己运行能得出结果么,还是Error?
追答我自己在VC上 运行了 能出现结果
第二组和第四组的第5列的5和重复了,无效
追答不存在你说的8组数。
递推法,
1到9,9个数字,3×3排列,这样为一组,共3组;要求9个竖排中不能重复出现两个数字,这种情况可能。
1到16,16个数字,4×4排列,这样为一组,共4组;要求16个竖排中不能重复出现两个数字,这种情况已经不可能。
1到25,。。。,不可能。
1到36,。。。,不可能。
。。。
1到64,不可能。
那个1到25,也就是5×5排列,已经被算出来是可行的
追答我把题目简化为1到16,16个数字,4×4排列,这样为一组,共4组;该题的解答思路如下:
1 5 6 7
2 8 9 10
3 12 13 11
4 16 14 15
1 4 2 3
5 8 9 10
6 11 12 13
7 14 15 16
1 2 3 4
8 6 7 5
9 11 12 13
10 16 14 15
1 2 3 4
11 5 6 7
12 10 8 9
13 14 15 16
假设1,不动,将剩下所有的数分成5组,2、3、4;5、6、7;8、9、10;11、12、13;14、15、16,其中4组可以在某一组中与1同列,剩下3组中不能同列;
不妨同行,则必然不同列;
5组中有一组没有机会与1同列,不妨为14、15、16,它在4组数中同行必然出现4次,而其他任意一组同行出现3次,任意两组同行出现2次;
不妨从2、3、4和5、6、7出发,
两次同行则为
2 3 4 2 3 4
5 6 7 6 7 5
14 15 16 16 14 15
从8、9、10和11、12、13出发可得
8 9 10 8 9 10
11 12 13 12 13 11
14 15 16 16 14 15
至此,所有数都满足规则,最后按照规则插入剩下的数
不妨8、9、10插入第一组,因其与14、15、16的关系,其排列只能为
10、8、9;
同理,11、12、13只能以11、12、13插入第二组数
从2、3、4与8、9、10以及14、15、16的关系看,
2、3、4可以4、2、3顺序插入第三组数或以3、4、2顺序插入第四组,但是插入第四组与11、12、13发生规则冲突;
只能插入第三组
则5、6、7只能以5、6、7顺序插入第四组数
推广到8×8
1不变,后面每7个数一组,共9组
其中8组分别排在1下,有一组多出来 剩下的你再研究研究吧