随机&猴子?

猴子定理?理论上来说确实存在可能,突发奇想的想试试能不能用rand模拟这种情况,花了一天时间才写出来一个程序,脑子老不活动正在慢慢退化啊!最后还是在纸上折腾了一圈,才终于划定了方法,主要卡在了空格和换行的判断处理上,因为空格不能出现在段落的头部,也不能出现在换行的后面,而且不能重复的连续出现;换行则只能出现在 . 结尾之后,所以需要判断前面两个合法的随机字符才能确定第三个字符的选择,最后用数组模拟队列实现这种存储,耗用资源相对单链表要多一点点,但是以现在的cpu单线程运行应该感觉不到什么压力。最终运行出来的结果如下,选了三段看看:

结果里看不到有明显的合法的单词。所以这种测试好像没有太多意义,多激活了几个脑细胞而已。在Google搜了搜,倒是有执着的people利用亚马逊强大的云计算平台,大规模测试这种随机性出现的单词在莎士比亚著作中的覆盖率,好像比较有效果,佩服之。

为了不浪费已经死掉的脑细胞,将这次的代码传到了github上(https://github.com/jma87/study/blob/master/shakespeare/random.c),但为了方便以后回顾和满足虚荣心,还是贴在这里比较实惠:

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注