初步提出另两种办法。 一、查表法 据状态码直接查九连环状态表。例如,状态码为001 010 001,由九连环状态表查得是态488,在组合过程中它要做“动后一个”成为态489;在解脱过程中,它要做“上俩”成为态486。 二、计算法 把状态码次序倒过来,即得某一自然数的“格雷码”,再把这格雷码变换为该自然数的二进制表示法,再换算为该自然数的十进制表示法n。该九连环的状态就是上述表中第(n+1)态。(n+1)除以8得到余数f,f从0~7,分别对应于下述动作:
例如,态码为011 010 100,格雷码(g)为001 010 110,变换为二进制数(b),为001 100 100 。 g改为二进制数b具体方法: 从左开始,第一位总是不变,g的左1位是0,b的左1位也是0; b的左1位是0,故g的左2位不变就成为b的左2位,为0; b的左2位是0,则g的左3位不变而成b的左3位,为1; b左3是1,故g的左4要变一下成为b左4,为1; b左4是1,故g的左5要变一下成为b左5,为0; b左5是0,故g左6不变,即b左6也是0; b左6为0,所以g左7不变,即b左7也是1; b左7=1,故b左8不同于g左8,为0; b左8是0,故b左9=g左9,为0。 二进制数 001 100 100 就是十进制数的 64+32+4=100;100+1=101,(101÷8)的余数f为5,从上表可知,组合时要做“上一个”;解脱时要做“动后一个”。 又如,态码为 111 111 111,格雷码正好也是 111 111 111,二进制数为 101 010 101,n=256+64+16+4+1=341,这是第342态,342÷8的余数f=6。故要继续组合,就做“下俩”,“动后一个”……;要解脱,得做“下一个”,“动后一个”,“上一个”……
[此贴子已经被作者于2007-10-24 21:20:24编辑过]
|