标题:写这个超级简单的程序,c语言可以吗
只看楼主
wuji158
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2019-1-7
结帖率:100%
 问题点数:0 回复次数:13 
写这个超级简单的程序,c语言可以吗
《失控》中的故事是这样的,哈佛大学有一个进化学者叫汤姆,这个汤姆做了一个很伟大的小实验,他用自己的电脑当了一回上帝,做了这么几件事:
1、在电脑里准备了一块专用空间,就好像画出了一个伊甸园。
2、汤姆他们写了一个80个字节的编码,就是一个可以自我复制的电脑程序,这就有点像上帝造人,所以就把这个80字节的编码给它起名叫亚当。然后把亚当放在了伊甸园里让它繁殖。
3、他们给伊甸园里还设定了一个叫收割者的程序,这个收割者吧会把这个空间里不能复制的或者疯狂复制的亚当全部都清除掉,换句话说,汤姆给这个世界引入了死亡的机制。
4、他们给这个亚当设定了一个微小的变化,就是这个亚当每一次自我复制的时候,都有10%的几率会产生一个非常微小的变异,但是变异的细节统统不管,这个就相当于赋予了亚当生物遗传变异的功能。
做完这几件事之后,Tom敲了一下回车,这个空间里的亚当就开始自我复制了起来。Tom等人就去休息了,等他们一觉醒来,发现这个空间里经历了一次史诗般的进化历程:
第一阶段:
80个字节的亚当疯狂的复制,一会就把整个空间给占满了;因为有突变的机制,进化就产生了,进化出了一个之后45字节的程序,然后这个45取代了亚当,成为了伊甸园的优势物种。查看这个45发现,它是一个寄生程序,靠吃掉80,也就是亚当来繁殖自己,随着亚当被消耗,45的数量也大幅下降。
第二阶段:
剩下的80进化成了79,变成79之后,就对45免疫了,所以原来的优势物种不行了,很快,又出现了一种51个字节的程序进化出来,以79为“食”,把“79”消灭到了几乎灭绝的程度。这个时候,又出现了一个神奇的事,就是在寄生程序45身上,又出现了一种“寄生虫”,它只有22个字节,它除了寄生在45身上复制自己的信息外,别的什么事都不做。最后22成为了“伊甸园”的主人。
Tom点开这个22发现它的内部非常简单,没有任何一个人类的电脑天才能写出这种天才代码。而这一切都是在Tom睡觉的时候发生的,这个例子说明了从下到上的系统有多强大。
ETH就是那个80,EOS就是那个45。
顺带提一句,这个例子也从一个角度说明了书名《失控》的意义,就是只有失控了才能产生多样性,进化体的天性就是喜欢钻常规的漏洞。
搜索更多相关主题的帖子: 超级 空间 字节 复制 出现 
2019-01-07 17:47
wuji158
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2019-1-7
得分:0 
机器学习的本质,就是让机器出错。人需要做的就是让错误可控。其实社会的上层也是这么管理老百姓的。
2019-01-07 17:51
外部三电铃
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:那一年
等 级:贵宾
威 望:55
帖 子:2004
专家分:7306
注 册:2007-12-17
得分:0 
这只是个科幻神话,事实上80个字节的编码是没有这么些功能的。

那一年,苍井空还是处女
2019-01-07 21:53
外部三电铃
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:那一年
等 级:贵宾
威 望:55
帖 子:2004
专家分:7306
注 册:2007-12-17
得分:0 
生命不是随机碰撞产生的,是最高等智慧(上帝)创造出来的。

那一年,苍井空还是处女
2019-01-07 21:54
wuji158
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2019-1-7
得分:0 
回复 3楼 外部三电铃
好吧,结束了吗,还没有呢。

不管几十个字节了。

实现几个功能,需要学习到什么程度呢?

1,复制自己的代码网上很容易找到。
2,隔离硬盘区域,就是沙盘
3,给沙盘设置规则,删除疯狂复制的程序或者不复制的程序,怎么实现呢
4,让复制程序的过程出错,如何实现。

3和4实现比较复杂,1和2是非常容易的。
2019-01-07 22:45
外部三电铃
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:那一年
等 级:贵宾
威 望:55
帖 子:2004
专家分:7306
注 册:2007-12-17
得分:0 
除了第一个,剩下的都不容易,第二和第三能实现,但是个不小的工程,沙盘系统不是说着玩的,算是中型的项目了把。

然后第4个,让复制的过程中出错,并且可以运行,也就是实现变异功能,现在没有人能做出来啊,如果能做出来这种功能。微软、谷歌这些大公司也不用花大价钱雇佣那么多程序员了。他们都有海量的服务器集群,直接让服务器集群去运行这个变异的伊甸园,让程序自己在里面进化就可以了。

那一年,苍井空还是处女
2019-01-07 23:48
豆豆的滴
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:贵宾
威 望:33
帖 子:368
专家分:1087
注 册:2018-5-7
得分:0 
2019-01-08 11:57
wuji158
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2019-1-7
得分:0 
回复 6楼 外部三电铃
我还是感觉是比较容易的。
1,网上很多代码
2,沙盘麻烦,硬盘分区就好了
3,删除程序功能
第四个和第一个是一起的,就是修改复制自己的代码的源码,每一次复制自己都有10%的可能出错。(只需要添加一个10%可能出错就好了)

2019-01-08 19:06
外部三电铃
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:那一年
等 级:贵宾
威 望:55
帖 子:2004
专家分:7306
注 册:2007-12-17
得分:0 
回复 8楼 wuji158
复制出错很容易,但是出错以后还能运行就难了。

出错以后,99.99999999999%的可能性是:程序中断退出

那一年,苍井空还是处女
2019-01-08 19:19
wuji158
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2019-1-7
得分:0 
回复 9楼 外部三电铃
被复制的不能运行了,就被删除了,源程序没有被删掉啊,还能继续复制自己。
2019-01-08 21:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-492560-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052855 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved