社区
数据结构与算法
帖子详情
如何判定接龙有无解?
zzwu
2006-01-26 07:55:43
实践告诉我们,接龙不一定能成功[注],接到后来无法再接下去的情况常常发生.
一副不能接成功的牌玩到后来极让人扫兴,所以,理想的接龙软件,应预先判定
所给的牌是否有解.
请问,如何判断?
[注]我想要证明不是所有初试布局都有解不难.
...全文
827
58
打赏
收藏
如何判定接龙有无解?
实践告诉我们,接龙不一定能成功[注],接到后来无法再接下去的情况常常发生. 一副不能接成功的牌玩到后来极让人扫兴,所以,理想的接龙软件,应预先判定 所给的牌是否有解. 请问,如何判断? [注]我想要证明不是所有初试布局都有解不难.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
58 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LoveCreatesBeauty
2006-03-28
打赏
举报
回复
up
NowCan
2006-03-27
打赏
举报
回复
这并不能作为证明,理论上,不同的随机序列也可能导致相同的开局。
IO_X
2006-03-27
打赏
举报
回复
假定牌集合S={s1,s2,s3,...,sn}
必有n!种排列,伪随机函数算法可是很多的...
zzwu
2006-03-27
打赏
举报
回复
这里有2个问题:
1.利用线性同余法产生的伪随机数是否只要种子不同就一定不同?
2.不同的随机序列是否一定导致不同的开局?
好像都不显然,其中都有疑问.
IO_X
2006-03-26
打赏
举报
回复
伪随机种子不同,则随机序列不同。
zzwu
2006-03-24
打赏
举报
回复
通过上面各位的发言,我认为已经揭示了空档接龙的一些性质:
1.开局采用随机方法生成,肯定没有专门的开局数据库;
2.作者并未对所有开局作过有无解的检测,只凭想当然而断言都有解;
3.所以会极大多数有解、很少无解,完全是因游戏规则决定:有多个缓冲点;
但是,尚未弄清:
4.所有开局是否都不相同?
5.如果算法能保证所有开局都不相同,根据的原理是什么?
NowCan
2006-02-22
打赏
举报
回复
如果程序没错的话,就是证明了。方法据说是A*搜索。
zzwu
2006-02-22
打赏
举报
回复
有意思极了!
不过,穷举算法是否对11982局进行了完整的搜索?
如果已经作过了完整的搜索,那也就是11982局无解的严格证明.
zzwu
2006-02-21
打赏
举报
回复
我想也是使用回溯,不太可能有更巧妙的办法可想了.
实际并不能保证一定有结果,我的看法.
caoze
2006-02-21
打赏
举报
回复
空当接龙趣话
空当接龙可说是最耐玩的Windows小游戏之一,尤其在办公一族中长盛不衰。Win98中的空当接龙有32000局,在空当接龙的帮助文件中,作者 Jim Horne 称:“虽然未经证明,但请您相信:所有的牌局最终都能移开。”事实究竟如何,是一个非常有趣的话题。
如果从空当接龙的第一局开始按顺序攻关,碰到的第一个难局是617局。难度很大的难局是1941局。如果1941局被你攻破,另一个难局10692应该不在话下。但是11982局会让你伤透脑筋。
空当接龙中还有两个隐藏的有趣的选局:分别是-1局和-2局,将这两局调出来,一看就会发现牌局是人为刻意排列的,很有规律。这两局是无解的,当然,这两局也是独立于32000局之外的作者另设的小机关。那么32000局中有没有无解局呢?很多人认为没有,结果被11982局搅得焦头烂额。
据说有人为攻破11982局者设立了10万赏金,但迄今为止,还没有11982的破局纪录。有人专门编程序穷举11982的解法步骤,还有很多人将空当接龙从头到尾玩通,都报告11982局无解。
大致可以确定,空当接龙中,有三局无解,分别是11982,-1,-2。(WinXP中的空当接龙则有一百万关,其中八局无解。)令人迷惑的是,11982局的模样很自然,没有任何特别之处,象极了一副有解的牌,居然无解。
为什么是11982局呢?好事者说,这里面一定隐藏着一个动人的故事,是作者的吉祥数字?或是他的某个收藏的密码?还是情人的**号码?多么浪漫而令人费解的一局呀!
常有人报告说攻破了11982局,其实都是用作弊的手法。首先打开11982局,然后移动红桃2到黑桃3上,随即按F3键退出游戏,但是在选局中仍选11982局,开局后按F10键撤销一步,从这一步玩起,就能解开此局。这样玩仍有相当难度,但能解开,软件的最优解是80步完成。其实最简单的作弊手法是,打开任意一局后,按Ctrl+Shift+F10,弹出窗口后按A,再随便双击某张牌,牌局便应声而解。
有一些软件对空当接龙的牌局进行跟踪破解,如“空当接龙工具”(点击下载 ),可以用多种模式破解牌局,著名的难局1941,几秒内可以解出。破解后可以逐步显示破解过程。有了这个工具,空当接龙就没有过不去的关了。该软件对11982局的破解,大约在尝试了6万种可能性后提示无解;对-1局则在很短时间内提示无解;对-2局的分析时间则相当长。所以11982局是真的无解。
相信你看了以上文章,不会再没日没夜地跟11982局穷耗了。
xuelong_zl
2006-02-19
打赏
举报
回复
再请教zzwu一个问题
我不明白连连看的外挂在寻路时用的是什么算法呢?人玩的时间可以自己选两点
不会是从第一个图片就开始一次一次的使用回溯吧?有什么好的解决方法吗?请指点一下,说得详细一些,小弟才接触算法这些基本的东东
NowCan
2006-02-14
打赏
举报
回复
回复人: shines(郭子) ( ) 信誉:95 2006-02-14 08:13:00 得分: 0
记得以前(记得有5年了)有人用A*算法做过一个空档接龙的求解程序, 优先考虑移动要接的列, 以现在的计算机的速度, 应该不是很难, 但好像的确有无解的开局(记不太清了)
PS: 各位大侠们这么有闲空啊, 俺今天无聊来刷算法版的帖子, 路过~~~
==葛永写的FreeCell2.1,他说可以证明11982,-1,-2是无解局面。如果真如他说,那么一定是完全搜索了。另外,XP的空档接龙好像是100万局,据说有20多个无解局面。
祝大家情人节快乐!
xuelong_zl
2006-02-14
打赏
举报
回复
不过连连看只应考虑初始化时是不是有解就可以了,过程的如何因为自己玩的不好而出现无解情况,就是应该restart
xuelong_zl
2006-02-14
打赏
举报
回复
回复人: zzwu(未名) ( ) 信誉:109 2006-02-08 13:32:00 得分: 0
to xuelong_zl(点雨点[好想村里的MM们............]) :
但我发现,当"连连看"接不下去时,有时屏幕会突然一闪,
将布局改变(图像数目不变),这时就可以继续接下去了.
或许就是为了自动解决"接不通"的问题.
这种情况我已经碰到过2次.
//=======
这个我也遇到过,不过我感觉很不合理,特别是要减生命我就更感觉郁闷,所以才想解决这个问题的
xuelong_zl
2006-02-14
打赏
举报
回复
zzwu,你认为连连看的初始化是否可以借鉴迷宫初始的实现思路呢??
比如用不相交集结构这样的算法,随机合并两个拆点数小于等于是2的元素,来初始化呢??
然后让新的不相交集中的成对元素做相同的标识,来初始化图片??
zzwu
2006-02-14
打赏
举报
回复
如果不要求一定有解,那也好办:逐步减少相邻的或位于四周同侧的对数.
shines77
2006-02-14
打赏
举报
回复
记得以前(记得有5年了)有人用A*算法做过一个空档接龙的求解程序, 优先考虑移动要接的列, 以现在的计算机的速度, 应该不是很难, 但好像的确有无解的开局(记不太清了)
PS: 各位大侠们这么有闲空啊, 俺今天无聊来刷算法版的帖子, 路过~~~
xuelong_zl
2006-02-14
打赏
举报
回复
对,zzwu,正是要保证有解的同时还难解,我才一时想不到好的方法.
如果只想有解,方示还是很多的,可以也增加相同的图片也是一样
zzwu
2006-02-14
打赏
举报
回复
NowCan(城市浪人) :
XP的空档接龙确实让你选1-100万个开局。
52张牌, 有52!种可用的布局,从其中选择100万,比例仍然很小很小。
不过要保证100万种开局一定都不一样,倒不容易。不知道XP是否已经考虑了这一点?
zzwu
2006-02-14
打赏
举报
回复
xuelong_zl:
怎样保证"连连看"有解的问题我原来没有想过,我只发现它很容构造无解的开局。
不过,我现在想,单单为了保证有解,不会很难,例如:把足够多的相同元素对放在一起或放在最外层的同一侧就行了。问题是,不但要有解,同时又要使它比较难解。
加载更多回复(38)
Leetcode刷题之旅(每日一题)--126. 单词
接龙
II
题目描述: 完全莫得思路,连用什么算法都不知道。参考了官方
解
答后:考察的是最短转换序列,就要想到广度优先算法。但是本题并没有给出图的模型,所以我们要自己先构造一个图的模型。怎么构造呢?首先能通过转换一个字符就能转换成另一个单词的两个单词之间存在边。那么我们就需要先编写个
判定
方法:输入两个单词,输出是两个单词是否存在一个字符的不同: boolean transformCheck(String str1, String str2) { int differences = 0;
2024CSP-J T4chain
2024CSP-J T4chain
HDU 1116(并查集,欧拉路径)
题目大意:给你一些英文单词,判断所有单词能不能连成一串,类似成语
接龙
的意思。但是如果有多个重复的单词时,也必须满足这样的条件才能算YES。否则都是不可能的情况。
解
题思路:欧拉路的基本题。只要知道就可以做出来了。关于欧拉回路和欧拉路径定义: 欧拉回路:每条边恰好只走一次,并能回到出发点的路径 欧拉路径:经过每一条边一次,但是不要求回到起始点①首先看欧拉回路存在性的
判定
:一、无向图 每个顶点的度
Hdu-1116 Play on Words
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1116 题目大意:给你一些英文单词,判断所有单词能不能连成一串,类似成语
接龙
的意思。但是如果有多个重复的单词时,也必须满足这样的条件才能算YES。否则都是不可能的情况。
解
题思路: 欧拉路的基本题。只要知道就可以做出来了。 关于欧拉回路和欧拉路径 ...
6.算法——搜索,深度优先搜索:695岛屿最大面积,547省份数量,417水流问题;回溯法:46排列,77组合,79单词搜索,51N 皇后;广度优先搜索:934最短的桥,126单词
接龙
深度优先搜索和广度优先搜索是两种最常见的优先搜索方法,它们被广泛地运用在图和树等结构中进行搜索。 深度优先搜索(DFS) 深度优先搜索(depth-first seach,DFS)在搜索到一个新的节点时,立即对该新节点进行遍历;因此遍历需要用先入后出的栈来实现,也可以通过与栈等价的递归来实现。对于树结构而言,由于总是对新节点调用遍历,因此看起来是向着“深”的方向前进。 如有简单树: 我们从 1 号节点开始遍历,假如遍历顺序是从左子节点到右子节点. 假如我们使用递归实现,我们的遍历过程为 1(起始节点)-&
数据结构与算法
33,025
社区成员
35,334
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章