物品器具 中国民间传统游戏——九连环
九连环是中国汉族民间智力玩具。以金属丝制成9个圆环,将圆环套装在横板或各式框架上,并贯以环柄。把玩时,按照一定的程序反复操作,可使9个圆环分别解开,或合而为一。
1、游戏介绍
九连环是一种流传于山西省的汉族民间的智力玩具。它用九个圆环相连成串,以解开为胜。据明代杨慎《丹铅总录》记载,曾以玉石为材料制成两个互贯的圆环,“两环互相贯为一,得其关捩,解之为二,又合而为一”。后来,以铜或铁代替玉石,成为妇女儿童的玩具。它在中国差不多有二千年的历史,卓文君在给司马相如的信中有“九连环从中折断”的句子。清代,《红楼梦》中也有林黛玉巧解九连环的记载。周邦彦也留下关于九连环的名句“纵妙手、能解连环。”
起源
西汉才女,辞赋家司马相如之妻卓文君曾提及九连环:……,七弦琴无心弹,八行书无可传,九连环从中折断,十里长亭望眼欲穿;百思想,千怀念,万般无奈把郎怨。……
卓文君生于西汉,诸葛亮生于东汉末年,其时汉室江山已分崩离析。二人相差几百年。也就是说,在诸葛亮之前几百年的西汉,九连环已经存在。故“九连环由诸葛亮发明”之说并不正确,可能系后世误传。也有人认为卓文君作词的故事似元朝杜撰,因为词风明显不是汉朝时所有。
2003年3月8日,中国甘肃省嘉峪关市的王仲斌以3分57秒成功解出九连环,进入吉尼斯世界纪录大全。
2012年10月25日CCTV新闻频道报道,江西理工大学学生杨咸阳创造最快拆解九连环的记录,时间为161秒(蒙眼)
历史
传说九连环源于中国古代汉族民间,一说发明于战国时代,另一说发明于三国时期,但能确认就是九连环的记载是明代杨慎(1488-1559,号升庵)的《丹铅总录》(见《升庵集》卷六十八),并不早于欧洲。
在中国,战国时代名家惠施曾着立《连环可解》的立论。惠施所说连环是指《战国策》卷第十三中提到的玉连环,南宋鲍彪注称这种玉连环是“两环相贯”,显然不是这里所说的九连环。据说三国时期,诸葛亮常带兵打仗,为排遣妻子寂寞而发明。于明代普及,明代中期时,流传更是极广。清代上至士大夫,下至贩夫走卒,个个爱玩“九连环”。《红楼梦》中曾有描写在深闺中玩九连环的细节。
在西方,16世纪前,欧洲有了九连环的记载。1550年,巴黎刊行的数学文献,清楚地讨论过这“中国难题”。着名意大利数学家卡当的着作中将之称为“中国九连环”。1685年,英国数学家瓦里斯对此作了详细的数学说明。19世纪,格罗斯用二进位数给了它一个十分优美的解答。
九连环无论在任何时候,都有这聪明的象徵。在古代,对于人们来说,九连环不算是一种玩具,而是代表智慧的象徵。电视剧看多的人应该会有这样一个印象:出使天朝的外邦,有些比较嚣张的,都会拿出九连环来刁难朝中大臣。在大家都素手无策,外邦使官洋洋得意的时候,总会有一个比较聪明的人出来解出九连环,挽回天朝的颜面。因此,九连环总是会被赋予聪明,有智慧的帽子。
构造
九连环流行极广,形式多样,规格不一。其制作,用金属丝制成圆形小环九枚,九环相连,套在条形横板或各式框架上,其框柄有剑形、如意形、蝴蝶形、梅花形等,各环均以铜杆与之相接。玩时,依法使九环全部联贯子铜圈上,或经过穿套全部解下。其解法多样,可分可合,变化多端。得法者需经过81次上下才能将相连的九个环套入一柱,再用256次才能将九个环全部解下。此外,也可套成花篮、绣球、宫灯等状。
同时,九连环也是按照一种顺序来解的。解九连环需要相当一段时间,这也可以训练人的耐心。不仅 如此,九连环还可以根据需要自行增加环数提高难度,但环数增加将使解开步骤呈几何级数递增,且本质上并没有改变解环方法,因此通常所见仍是九环为主。
2、拆解原理
解开九连环共需要341步,只要上或下一个环,就算一步,不是在框架上滑动。希望大家能够通过独立思考,解决这个问题。九连环的解下和套上是一对逆过程。解法跟计算机的格雷码是同一原理。
九连环的每个环互相制约,只有第一环能够自由上下。要想下/上第n个环,就必须满足两个条件(第一个环除外)。一、第n-1个环在架上;二、第n-1个环前面的环全部不在架上。玩九连环就是要努力满足上面的两个条件。解下九连环本质上要从后面的环开始下,而先下前面的环,是为了下后面的环,前面的环还要装上,不算是真正地取下来。
我们先从最简单的一连环开始。解一连环需要1步:一下。解二连环需要2步:二下,一下。那解三连环呢?需要5步:一下,三下,一上,二下,一下。也就是解一个连环,再把最后一个环解下,再上一个一环,再解一个二连环。那解一个四连环,需要10步:二下,一下,四下,一上,二上,一下,三下,一上,二下,一下。也就是解一个二连环,再解最后一个环,再上一个二连环,再解一个三连环。
也就是说,解N连环,就是先解一个N-2连环,再解最后一个环,再上N-2连环,再解N-1连环。
解一连环需要1步,解二连环需要2步,由此可知,解三连环需要5步,解四连环需要10步,解五连环需要21步,解六连环需要42步,解七连环需要85步,解八需要170步,解九连环需要341步,解十连环需要682步……以后的类推。
3、破解方法
基本方法
把框架和九个圆环分开,如左手持框架柄,右手握环,从右到左编号为1-9将环套入框架为“上”,取出为“下”。
九连环拆解共341步:
下9:
下1(结果98765432在上):下1
下3(结果987654在上):下3上1下12
下5(结果9876在上):下5上12下1上3上1下12下4上12下1下3上1下12
下7(结果98在上):下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
下9(结果8在上):下9;
下8:
上2(结果82在上):上12下1
上3(结果83在上):上3上1下12
上4(结果84在上):上4上12下1下3上1下12
上5(结果85在上):上5上12下1上3上1下12下4上12下1下3上1下12
上6(结果86在上):上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(结果87在上):上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
下8(结果7在上):下8;
下7:
上2(结果72在上):上12下1
上3(结果73在上):上3上1下12
上4(结果74在上):上4上12下1下3上1下12
上5(结果75在上):上5上12下1上3上1下12下4上12下1下3上1下12
上6(结果76在上):上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(结果6在上):下7;
下6:
上2(结果62在上):上12下1
上3(结果63在上):上3上1下12
上4(结果64在上):上4上12下1下3上1下12
上5(结果65在上):上5上12下1上3上1下12下4上12下1下3上1下12
下6(结果5在上):下6;
下5:
上2(结果52在上):上12下1
上3(结果53在上):上3上1下12
上4(结果54在上):上4上12下1下3上1下12
下5(结果4在上):下5;
下4:
上2(结果42在上):上12下1
上3(结果43在上):上3上1下12
下4(结果3在上):下4;
下3:
上2(结果32在上):上12下1
下3(结果2在上):下3;
下12:
下12(结果拆解完成):上1下12。
九连环安装共341步:
上98:
上2(结果2在上):上12下1
上3(结果3在上):上3上1下12
上4(结果4在上):上4上12下1下3上1下12
上5(结果5在上):上5上12下1上3上1下12下4上12下1下3上1下12
上6(结果6在上):上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(结果7在上):上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
上8(结果8在上):上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下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
上9(结果98在上):上9
上76:
上2(结果982在上):上12下1
上3(结果983在上):上3上1下12
上4(结果984在上):上上4上12下1下3上1下12
上5(结果985在上):上5上12下1上3上1下12下4上12下1下3上1下12
上6(结果986在上):上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(结果9876在上):上7
上54:
上2(结果98762在上):上12下1
上3(结果98763在上):上3上1下12
上4(结果98764在上):上4上12下1下3上1下12
上5(结果987654在上):上5
上32:
上2(结果9876542在上):上12下1
上3(结果9876532在上):上3
上1:
上1(结果安装完成):上1。
递归破解
用“递归”描述九连环的拆装方法比较容易理解和记忆。所谓递归就是第n个步骤的解决办法可以用已知的n-1步(或更早)的办法来解决。对于九连环来说,就是拆下第n个环的方法可以用拆下第n-1个环的方法来描述。把拆下第n个环的问题转化成为如何拆下第n-1个环的问题,也就是我们会才第n-1个环就会拆第n个环。以下是具体的拆装方法描述:
n 拆下第1个环的方法:(D1)
1.把第1个环推出横杆,从横杆上面穿下去。
n 装上第1个环的方法:(U1 )
1.把第1个环从横杆下面穿上去,拉到外面后套进横杆。
n 拆下第2个环的方法:(D2 )
1. 把第1个换装上;(U1)
2. 把第2个和第1个环一起推出横杆,把第二个环从横杆上面穿下去;(卸下第2环)
3. 把第1个换再拆下。(D1)
n 装上第2个环的方法:(U2)
1. 把第1个换装上;(U1)
2. 把第2个环从横杆下面穿上去,拉到前面后套进横杆;(装上第2环)
3. 把第1个换再拆下。(D1)
n 拆下第n环的方法:( Dn )
1. 把第n-1环装上去;(Un-1)
2.把第n和n-1环一起推出横杆,把第n环从横杆上面穿下去;(卸下第n环)
3. 再把第n-1环卸下。(Dn-1)
n 装上第n个环的方法:(Un)
1. 把第n-1环装上去;(Un-1)
2. 把第n个环从横杆下面穿上去,拉到前面后套进横杆;(装上第n环)
3. 把第n-1个换再拆下。(Dn-1)
n 为了加快速度,可以把第n+1个环和第n个环一起卸下去:(Dn.n+1)
1. 把第n+1和n环一起推出横杆,把n+1环从横杆上面穿下去;(卸下第n+1环)
2. 把第n-1环装上去;(Un-1)
3、把第n和n-1环一起推出横杆,把第n环从横杆上面穿下去;(卸下第n环)
4. 再把第n-1环卸下。(Dn-1)
举例说明:
在第1个和第2个环都卸下去的情况下,如何把第3、4环卸下(n=3,D3.4):
1. 把第4和3环一起推出横杆,把4环从横杆上面穿下去;(卸下第4环)
2. 把第2环装上去;(按方法U2)
3. 把第3和2环一起推出横杆,把第3环从横杆上面穿下去;(卸下第3环)
4. 再把第2环卸下。(按照方法D2)
4、步骤计算
九连环是中国汉族民间玩具。规定环在杆上用1表示,环在下面用0表示。规定最左边的环是可以任意上下的那一环,输出数据中最右边必须是1,也就是说,010100要写成0101。
现今是X连环,由于“输出数据中最右边必须是1”,所以X可以理解为无限大,右边多余的0在输出时都省略。初始化各环都是0,以下是前9步的情况:
1.1
2.11
3.01
4.011
5.111
6.101
7.001
8.0011
9.1011
问在X连环装上过程中,第n步完成后,具体情况是怎么样的。
答案:将n转化为二进制,求其格雷码。将二进制的格雷码逆序输出,即得具体情况。
注意:这个算法揭示了传统的九连环与现代的格雷码的重要关系!
程序实现
(C语言):
#include<stdio.h>
main()
{ __int64 n;
int a[70]=,num=0,i;
scanf("%I64d",&n);
if(n==0)
{ printf("0");
return 0;
}
while(n>0)
{ a[num++]=n%2;
n/=2;
}
for(i=0;i<num;i++)
a=a^a[i+1];
while(a[num]==0)
num--;
for(i=0;i<=num;i++)
printf("%d",a);
}
(Pascal语言):
var t:int64; n:shortint;
procedure jie(z:shortint);
procedure tao(z:shortint);
begin
if z>1 then
tao(z-1);
inc(t);
writeln(t,': put up ',z);
if z>1 then
jie(z-1);
end;
begin
if z>1 then
tao(z-1);
inc(t);
writeln(t,': put down ',z);
if z>1 then
jie(z-1);
end;
procedure N_Lian_Huan(z:shortint);
begin
if z>2 then
N_Lian_Huan(z-2);
inc(t);
writeln(t,': put down ',z);
if z>1 then
jie(z-1);
end;
begin
read(n); t:=round(exp(ln(2)*(n+1)));
write(' Total steps:');
if odd(n) then
writeln((t-1)div 3)
else writeln((t-2)div 3);
t:=0;
N_Lian_Huan(n);
end.
一种解法
方法一:首先你不断地数1,2,1,2,1,2,1……
数1的时候上或下第1个环
数2的时候先看看从第一个环数起第一个在框上的环是第几个,就上/下它的下一个环。如:第1个在框上,则只需上/下第2个环;
第1至第5个都在框下,第6个在框上就上/下第7个环。
一直,坚持数完341个数就解出来了。
方法二:解九连环,首先要知道1、2环怎么解开,会拆1、2环(如何拆卸请见第一步),就能拆后面的环了。
拆卸方法
第一环:把第一环从左边拿起,从上面放下。(有图解,每环步骤均相同)(绿红方块帮助辨别方向,箭头指引移动方向) 重要步骤!
第二环:和第一环步骤一样(第一环不能先下)。
拆卸提示(顺序)
卸下第一环
卸下第三环
卸下第二环
卸下第五环
用前面的方法装上第三环,此时可卸下第四环。
卸下第三环和更左边的环。
卸下第七环
装上第五环,卸下第六环。
装上第四环,卸下第五环。
......卸完为止。
卸下第九环,离成功更进一步。
想办法卸下第八环。
想办法卸下更前面的环。
大功告成(其实有一百多个步骤)
5、其他相关
红楼梦
第八回:比通灵金莺微露意,探宝钗 黛玉半含酸。
开头说了点儿贾母去宁府看戏的事,不过是起个头儿。宝玉送贾母回来,本想还看戏的,
“想起近日薛宝钗在家养病,未去亲候,意欲去望他一望”——这是有伏笔的,前一回宝玉和黛玉玩九连环时,听说宝钗身上不大好,便吩咐丫头去看望,“论理我该亲自来的,就说才从学里来,也着了些凉,异日再亲自来看。”
九九连环
随着人们对九连环的认识与了解,热爱巧环的民间人士对九连环进行了研究及开拓创新,各种各样的新式九连环悄然出现在民间,例如:玉米九连环等等,由于这类九连环最初用了十八个环,因此被称之为九九连环,九九连环隶属九连环纲目,之后出现的九九连环不一定就是十八个环,但主体构架上的手柄基本保留和延续了九连环手柄的特色,以及手柄与环梁的初始套入关系,即套入的不是一条梁,而是全部或者一部分环,这是传统九连环以及近代新兴的九九连环的共同特点。九九连环总体来看通常难度较传统九连环会高一些,解法及实物制作上往往也会稍复杂一些,在继承了九连环的艺术特点的同时,有着其独特的解题线路及造型艺术,为发展和弘扬九连环传统益智文化起到了丰富与延伸。关于九连环,汉族民间早有一句谚语为“解不开的歧中易,摘不下的九连环”,来比喻某种比较难解的益智谜题,不过这只是个神话而已,传统的歧中易解开不是很难,摘下经典九连环也并非难的找不到头绪,新的“歧中易”及“九九连环”将为这句神化版的谚语添加新的标注与解释以及给予新的支持与论证。(附歧中易图)