游大观园 戏九连环(谜中智@Mathematica)

来源:互联网 发布:ug编程铣孔螺旋进刀 编辑:程序博客网 时间:2024/06/02 09:27

作  者:吴  飞

 


引言:

 

谁知此时黛玉不在自己的房中,却在宝玉房中大家解九连环顽呢。 --- 曹雪芹,《红楼梦》,第七回

 


游戏简介:

 

九连环 (Chinese Ring Puzzle) 是中国古老民间玩具,以金属丝制成九个圆环,将圆环套装横式框架上,并贯以环柄。

游玩时,按照一定的规律操作,使九环解开或合而为一为胜。

 

 

 


游戏规则:

九连环的每个环互相制约,仅有两种基本的操作可能的。(假设九连环按照如图所示的位置摆放,其手柄在左侧。)
1. 只有最右侧的环可以在任何时候被上下改变位置。
2. 移动其他环时当且仅当,第它右侧邻近的环在架上,且邻近环右侧的环都不在架上。
如果用二进制来表示九连环的状态,则以 1 代表环在柄上,以 0 代表环已下柄。

 

 


演示代码:

本演示基于格雷码,提供了程序解决九连环的方法和答案(当为9环时,解答为341步)。

 

初始化:创建九连环三维模型

初始化:基于格雷码的九连环求解器,并根据环数设定的最大步数。

操控程序 :九连环解题演示

 

 

 

下载链接: http://demonstrations.wolfram.com/TheChineseRingsPuzzle/

 


参考文献:

 

[1]  F. Wu,"The Chinese Ring Puzzle", Wolfram Demonstrations Project.

[2]  E. Weisstein, "Baguenaudier", "Gray Code", Wolfram Mathworld.

[3]  D. E. Knuth, "Gray Code", The Art of Computer Programming, Vol. 4, Addison-Wesley, 2001, pp.5-6.

[4]  吴鹤龄,七巧板、九连环和华容道,科学出版社 2004,pp.143-186.

原创粉丝点击