填方格问题
昨天去找堂姐,看到堂姐买给她儿子的玩具,其中一个是放格子玩具。也就是在一个有6 6,一共36格的盒子中,放入6个1,6个2,6个3,。。。,6个6,使得各行各列的数字不重复。这个挺简单的,于是对它进行扩展,也就是在各行各列的数字不重复的基础上,还要求斜边不重复,当场没做出来,回来之后写程序。想起了以前的八皇后问题,运行了一下
N皇后问题解的个数
1 1
2 0
3 0
4 2
5 10
6 4
7 40
8 92
9 352
10 724
11 2680
12 14200
13 73712
14 365596
15 2279184
16 14772512
17 95815104
发现六皇后问题,只有4个解,所以断定上面的扩展问题无解。不知道上面的数字有什么规律。顺便做了以下两个问题。
问题1
在n n个格子里填入 n 个1,n个2,。。。 n 个 n使得各行各列出现的数字不重复
如在3 3的格子中填入
1 2 3
3 1 2
2 3 1
这个就可以满足条件
问对于1 1, 2 2 ,3 3, …, 6 6分别有几种填法?
解答如下
1 1
2 2
3 12
4 576
5 161280
由于6 6 时解的个数已经很多,程序跑的很慢,所以这个次数还不知道。
问题2
在n n个格子里填入 n 个1,n个2,。。。 n 个 n使得各行各列,以及斜边出现的数字不重复
此时对于3 3的格子中填入
1 2 3
3 1 2
2 3 1
这个就不可以满足条件了,因为从左上角往右下角方向看,有3 3,1 1 1,2 2 在同一条直线上。
而对于 5 5的格子中填入
1 2 3 4 5
3 4 5 1 2
5 1 2 3 4
2 3 4 5 1
4 5 1 2 3
这个就可以满足条件了。
问对于1 1, 2 2 ,3 3, …, 6 * 6分别有几种填法?
解答如下
1 1
2 0
3 0
4 0
5 240
6 0