九连环
By ljs(网名:DSCS2009)
1.九连环简史
与九连环有关的文字记载在我国古籍中比较多见,因此九连环在宋代(960~1279)已经流行之说是被广泛接受的,九连环至少有800年历史也是没有疑问的。
但九连环的起源就有种种不同的说法了,此处举其中3种说法:
· ①春秋战国说: 出现时间->春秋战国时期 原因->庄子著作的《天下篇》中有“连环可解也”的句子。
· ②西汉说: 出现时间->西汉之前 原因->一个故事与九连环有关(不知是不是后世编造)
· ③三国说: 出现时间->三国 原因->诸葛亮发明孔明锁,与九连环密切相关
2.九连环规则
九连环主题是九个套在剑形环柄上的环,环柄两端分别叫做柄钗和柄把,环可以从柄钗这一端套上环柄或取下,但不能从柄把这一端套上、取下。
9个环都套上后,我们从柄钗到柄把依次从1标到9。
每个环上都又套着一个带环杆的环,一号环穿过二号环,二号环的环杆穿过三号环……
以此类推环杆被底板连接在一起,从而形成9个环错综相扣的关系。
Q: 如何将九连环9个环套上再取下?
3.九连环解法
1.单环上、下法
单环的上、下法就是把1号环装上或取下的方法。上环时,左手用拇指、食指和中指拿住环转90°,让它自下而上穿过环柄的2根横杠,再转90°,把它左移过柄钗后适当降低高度,就可套到环柄上去了。
2.双环上、下法
双环上下法与单环上下法是一样的,只不过需同时拿住两个环操作。只适用于1号、2号两环。
3.3号环上、下法
所谓3号环上下法其实泛指(n+1)号环的上下法,此时n号环必须在柄上,1~(n-1)号环必须在柄下。上环时,拿住(n-1)号环,按单环上法套到柄上,n号环也会跟着移动,虽然由于环杆的作用不会脱离开环柄,但(n-1)号环套上环柄后,n号环是“浮”在环柄内侧的横杠上的。因此,在装上(n-1)号环以后,应随手把n号环“推”回到柄上去,在2个横杠上重新架好。
9连环全部解法步骤(注意: 12下、12上、13上算一步,所以JavaScript代码求得341步而只有256步)
1下(第一步,1号环下)
3下 1上 12下(3步,2、3号环下。连前共4步)
5下 12上 1下 3上 1上 12下 4下 12上 1下 3下 1上 12下(12步,4、5号环下。连前共16步)
7下12上1下3上1上12下4上12上1下3下1上12下5上12上1下3上1上12下4下12上1下3下1上12下6下12上1下3上1上12下4上12上1下3下1上12下5下12上1下3上1上12下4下12上1下3下1上12下(48步,6、7号环下。连前共64步)
9下12上1下3上1上12下4上12上1下3下1上12下5上12上1下3上1上12下4下12上1下3下1上12下6上12上1下3上1上12下4上12上1下3下1上12下5下12上1下3上1上12下4下12上1下3下1上12下7上12上1下3上1上12下4上12上1下3下1上12下5上13上1下3上1上12下4下12上1下3下1上12下6下12上1下3上1上12下4上12上1下3下1上12下5下12上1下3上1上12下4下12上1下3下1上12下(96步,至此柄上剩7、8号环。连前共160步)
8下12上1下3上1上12下4上12上1下3下1上12下5上12上1下3上1上12下4下12上1下3下1上12下6上12上1下3上1上12下4上12上1下3下1上12下5下12上1下3上1上12下4下12上1下3下1上12下(48步,至此柄上剩6、7号环。连前共208步)
7下12上1下3上1上12下4上12上1下3下1上12下5上12上1下3上1上12下4下12上1下3下1上12下(24步,至此柄上剩5、6号环。连前共232步)
6下12上1下3上1上12下4上12上1下3下1上12下(12步。至此柄上剩4、5号环。连前共244步)
5下12上1下3上1上12下(6步,至此柄上剩3、4号环。连前共250步)
4下12上1下(3步,至此柄上剩2、3号环。连前共253步)
3下1上(2步,至此柄上剩1、2号环。连前共255步)
12下(1步,结束,9个环全部解下,共256步)
注:状态由01表示 一个状态由a[n]表示,n为连环数,a[i]:0->在环柄下 1->在环柄上。
4.JavaScript写的n连环解法程序(JavaScript没有C++速度快,慢点就慢点吧...)
n=
运行结果:
步数: [此处在按钮按下后会显示步数] 步
[此处在按钮按下后会显示结果]