20皇后有多少解
2009-09-06 16:39
239 查看
利用八皇后的C语言实现一文中实现的方法计算各种不同的数目的皇后有多少种解,我最后得到了以下4个结果
8皇后:
耗时:0
结果:92
总共步数:3, 920
10皇后:
耗时:31
结果:724
总共步数:69, 618
12皇后:
耗时:750
结果:14200
总共步数:1, 683, 964
15皇后:
耗时:217828
结果:2, 279, 184
总共步数:337, 699, 759
这里耗时是以毫秒计算(将所有的打印结果去掉,只计算运行求解的时间,即程序第80行去掉),结果是指解的数目,总共步数是指回溯算法前进后退的步数。
可以看出15皇后耗时已经达到3.5分钟,而20皇后会有多少种解呢?
我是用这个程序已经运行了3个多小时,没有得到结果,虽然说内存占用保持在60K,但是不知道要等到何年何月。我想到一个方法就是因为这个东西是对成的,我逐个计算从0到9的解,相加之后乘以2应该就是20皇后的解。但是,我还是想等现在这个通解方法计算完成。
另外,我同学写了一个C++的方法,利用了递归,虽然把保存结果的方法去掉了,内存占用仍然逐步升高,我觉得15皇后都没法运行出来,而且还得考虑递归导致的堆栈溢出问题。在保留结果保存的功能的时候,内存占用迅速的达到了700M,没有得到结果,我给关了。
根据http://algo2008.csie.chu.edu.tw/file/f31.pdf(2008年12月24日)的论文可见,上诉已得的结果都是正确的,而20皇后的解数目为:39, 029, 188, 884 所以我怀疑我得电脑是否能够承受这个计算量。当然,正如上边我所提到的换一个思路计算20皇后,新的算法需要被研究出来以加快或者更好的计算结果。同时论文作者指出他们计算更大的数目皇后的时候都使用了网格计算,因此不是我的一个小本能够搞定的。简略的按照倍数来看,15皇后是3.5分钟,那么20皇后就应改达到1000多个小时。
另外,http://www.research.att.com/~njas/sequences/上边有各种数目的皇后的解(已经解出来的)。
文章出处:DIY部落(http://www.diybl.com/course/3_program/c++/cppjs/20090303/157264.html)
8皇后:
耗时:0
结果:92
总共步数:3, 920
10皇后:
耗时:31
结果:724
总共步数:69, 618
12皇后:
耗时:750
结果:14200
总共步数:1, 683, 964
15皇后:
耗时:217828
结果:2, 279, 184
总共步数:337, 699, 759
这里耗时是以毫秒计算(将所有的打印结果去掉,只计算运行求解的时间,即程序第80行去掉),结果是指解的数目,总共步数是指回溯算法前进后退的步数。
可以看出15皇后耗时已经达到3.5分钟,而20皇后会有多少种解呢?
我是用这个程序已经运行了3个多小时,没有得到结果,虽然说内存占用保持在60K,但是不知道要等到何年何月。我想到一个方法就是因为这个东西是对成的,我逐个计算从0到9的解,相加之后乘以2应该就是20皇后的解。但是,我还是想等现在这个通解方法计算完成。
另外,我同学写了一个C++的方法,利用了递归,虽然把保存结果的方法去掉了,内存占用仍然逐步升高,我觉得15皇后都没法运行出来,而且还得考虑递归导致的堆栈溢出问题。在保留结果保存的功能的时候,内存占用迅速的达到了700M,没有得到结果,我给关了。
根据http://algo2008.csie.chu.edu.tw/file/f31.pdf(2008年12月24日)的论文可见,上诉已得的结果都是正确的,而20皇后的解数目为:39, 029, 188, 884 所以我怀疑我得电脑是否能够承受这个计算量。当然,正如上边我所提到的换一个思路计算20皇后,新的算法需要被研究出来以加快或者更好的计算结果。同时论文作者指出他们计算更大的数目皇后的时候都使用了网格计算,因此不是我的一个小本能够搞定的。简略的按照倍数来看,15皇后是3.5分钟,那么20皇后就应改达到1000多个小时。
另外,http://www.research.att.com/~njas/sequences/上边有各种数目的皇后的解(已经解出来的)。
文章出处:DIY部落(http://www.diybl.com/course/3_program/c++/cppjs/20090303/157264.html)
相关文章推荐
- 20皇后有多少解
- Mysql的varchar(20)到底可以存储多少个中文字符
- 国际象棋中用8个皇后摆在不同的格而且互相不牵制有多少种不同的摆法
- PAT - 甲级 - 1128. N Queens Puzzle (20) (8皇后问题变形)
- 腾讯 1.1-20的两个数把和告诉A,积告诉B,A说不知道是多少......
- 小慧过生日,小明要给小慧买鲜花作为礼物,每枝红玫瑰5元钱,满5枝赠送1枝,满20枝赠送5枝,小明一共有n(n>10)元钱,为了让小慧高兴,小明希望能买到最多的红玫瑰,请你帮小明明算算,他最多能买到多少
- 欧拉工程第11题 在20×20的网格中同一直线上四个数的最大乘积是多少
- 你会不会喜欢编程多一点之当我特别想知道jdk1.8.0_20中有多少.java的文件时
- Mysql的varchar(20)到底可以存储多少个中文字符
- 欧拉计划之题目11:在20×20的网格中同一直线上四个数的最大乘积是多少?
- PAT甲题题解-1128. N Queens Puzzle (20)-做了一个假的n皇后问题
- 1-20的两个数把和告诉A,积告诉B,A说不知道是多少,B也说不知道,这时A说我知道了,B说我也知道了,请你猜猜这两个数的和是多少
- 从20 * 20的网格的左上角通往右下角有多少条路?
- 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!
- 1128. N Queens Puzzle (20) n皇后站位问题——对角线坐标判断
- 20!等于多少
- 母牛生产问题;第一年有一头小母牛,3年之后每年都生一头小母牛,假设都不死,第n年共有多少母牛,输出n从1到20的母牛数目
- application19事件 20多少步骤 具体20多少只有微软知道!!!
- Java知多少(20)变量的作用域
- 【程序20】一球从100米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?