陈凯
1111111010000000100110100100101111100001111111111111111001101101这串数据究竟是什么意思呢?这是我计算机网卡MAC地址的二进制码,假如不点明“MAC地址”这一外在附加的设定,那么符号串本身对读者来说就毫无意义。然而,有没有可能,数据的意义会由符号自身的组织形式展现出来呢?
● 两种序列、一种图形
下面,笔者通过两种不同的方式,生成了两种不同的符号串。
方法一,打开写字板,写入一个0,然后反复执行以下“全部替换”过程,先将0替换成01,再将1替换成10,由此生成的符号串序列依次是0-010-01010010-010100101001001010010……很快能得到越来越长的符号串A。
方法二,打开Excel,在第一行单元格中写入0,第二行单元格中写入1,将第一行单元格字符与第二行单元格字符连接成的字符串(=A1&A2)作为第三行单元格生成公式,其后多行重复此过程,很快就能得到越来越长的符号串B,乍看之下,符号串A与符号串B并无相似之处。
然而,若借用Logo语言代码,用语句“ fd 8 lt 60 ”和“ fd 8 rt 60 ”分别对以上两个符号串中的“0”和“1”进行替换(注意语句前后留出空格,fd表示前进,lt表示左转,rt表示右转),将生成的代码在Logo环境中运行后,都会得到类似蜂窝的图案,如图1所示。若用语句“ fd 8 lt 90 ”和“ fd 4 rt 90 ”分别对以上两个符号串中的“0”和 “1”进行替换,将生成的代码在Logo环境中运行后,也都会得到同样的图案,如拼贴地板,如图2所示。这就说明,符号串1与符号串2的组成与演化模式本质上是相同的。较之于抽象符号,图形更直观地揭示出事物的真相。
● 循环的素数
众所周知,素数的出现没有固定模式可寻,但假如将所有自然数按螺线形排列起来,并且把其中的素数圈起来,就会发现奇怪的现象,如图3所示。
编写程序,使其生成如下由三个字符组成的字符串,用以表示螺线形图案中素数的分布情况:10210210020102100021010……(为避免程序复杂性,从自然数3开始检验素数分布)其中,“1”表示这个数字是素数,“0”表示这个数字是合数,“2”表示左转90度,然后借用Logo语言代码,用语句“ pd fd 3 ”、“ pu fd 3 ”和“ lt 90 ”分别对符号串中的“1”、“0”和“2”进行替换(pd表示落笔,pu表示抬笔),将生成的代码在Logo环境中运行后,会生成令人惊讶的图形,原来从统计学意义上来说,素数的分布也是有规律的,只是不能用这样的规律来精确地预测后一个素数出现的位置。(答案在本期找)