从字符串到图形——自我实现的意义

2012-04-29 00:44陈凯
中国信息技术教育 2012年3期
关键词:字符串素数单元格

陈凯

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环境中运行后,会生成令人惊讶的图形,原来从统计学意义上来说,素数的分布也是有规律的,只是不能用这样的规律来精确地预测后一个素数出现的位置。(答案在本期找)

猜你喜欢
字符串素数单元格
孪生素数
两个素数平方、四个素数立方和2的整数幂
流水账分类统计巧实现
基于文本挖掘的语词典研究
玩转方格
玩转方格
关于两个素数和一个素数κ次幂的丢番图不等式
浅谈Excel中常见统计个数函数的用法
奇妙的素数
一种新的基于对称性的字符串相似性处理算法