前两年,先有软件定义装备的说法,后来变成了“软件定义世界”或“软件定义一切”。
这些说法的基础是万物皆可0和1。
万物皆可0和1,我是在《大学计算机:计算思维导学(慕课版)》一书中看到的,我理解它包含两个含义:一是万事万物符号化为0和1,从物理实体转换成计算机能够处理的数字变量;二是将事物用二进制表示可以运用计算思维解决问题。
实体转换
以下是常见的实体转换:
英文字母与符号——ASCII码;
中文文字——GB2312码;
图像——用0和1表示构成图像的每个像素点(黑白图像的一个像素点用1位表示,灰度图像用8位表示,彩色图像用3个8位表示);
音频或声音——通过采样、量化和编码后形成数字音频……
所以,万事万物只要经过编码过程就可以转换成数字信息进行处理,然后再按照协议(编码的规则称为协议)进行解码就可以输出处理结果。
计算思维
《大学计算机:计算思维导学(慕课版)》书中讲了一个小白鼠检验毒水瓶的例子:有1 000瓶水,其中一瓶是有毒的,小白鼠只要尝一点带毒的水,24小时内就会死亡,问:至少要有多少只小白鼠才能在24小时内检验出哪瓶水有毒?怎样检验?
解决方法就是将水瓶用二进制编码,然后将10只小白鼠也用二进制编码,每一瓶水的编号记为B9B8B7B6B5B4B3B2B1B0(其中Bi仅为0或1,i=0,…,9),10只小白鼠分别编号为M9,M8,M7,M6,M5,M4,M3,M2,M1, M0。制定规则如下:编号为B9B8B7B6B5B4B3B2B1B0的一瓶水,如果Bi位为1,则让Mi小白鼠喝一口;如果Bi位为0,则不让Mi小白鼠喝。待小白鼠喝完后,静等24小时,然后看哪只小白鼠死掉了。如Mi小白鼠死了,则Mi=1,否则Mi=0。将Mi连起来看,依题得到1111100101,就得出了有毒水瓶的二进制编号,再还原回十进制编号,便可知道997号瓶的水有毒。
这个问题通过转换成二进制可以快速地解决问题。
所以说,符号化—计算化—自动化思维是计算机最本质的思维模式。
首先我们把万事万物通过进位制和编码将其符号化为0和1,并且实现基于0和1的逻辑运算,这就是“语义符号化、符号计算化、计算0(和)1化”。用电信号的低电平、高电平可实现0和1,用0和1与电子技术可实现逻辑运算,实现好的电路可封装成芯片,这是“0(和)1自动化、分层构造化、构造集成化”的含义。
“语义符号化→符号计算化→计算0和1化→0和1自动化→分层构造化→构造集成化”,这就是计算机实现自动计算求解社会/自然问题最本质的原理。
这正是:
万物皆可化零一,符号转换有深机
计算思维通大道,世间难题皆可期
参考书目:大学计算机:计算思维导学(慕课版),作者:战德臣 陈荆亮 叶志伟等,出版社:人民邮电出版社