1.问题:

《python数据结构与算法》一书中有无限猴子定理一题,问题如下:

2.代码

搜集网上代码,调试如下:

import randomNUM = 1000
char_list = [chr(c+ord('a')) for c in range(26)]
# 返回c+ord('a')对应的ascii码,a~z
char_list.append(' ')
# 添加空格 该列表内的字符一共有27个target_list = 'hwnzy is a handsome boy'#生成指定长度的随机字符串
def fun1():temp_list = []for index in range(27):temp_list.append(char_list[random.randint(0, 26)])# temp_list.insert(index, char_list[random.randint(0, 26)])return ''.join(temp_list)  # 将temp_list 内的元素以指定的字符(分隔符)连接,这里为空,不是空格# 将随机生成的字符串与目标字符串进行比较,给出相似度
def fun2(temp_list):score = 0for index in range(len(target_list)):if target_list[index] == temp_list[index]:score += 1return score#重复多次给出相似度最高的字符串
def fun3(times):best_score = 0best_time = 0best_list = []for index in range(times):temp_list = fun1()score = fun2(temp_list)if score > best_score:best_score = scorebest_time = indexbest_list = temp_listprint('%dTH similarity is %.3f' % (index+1, score/len(target_list)))print("the best similarity is %dTH %.3f" % (best_time, best_score/len(target_list)))print(best_list)if __name__ == '__main__':# 当.py文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行;# 当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行。fun3(NUM)

运行结果:

# 省略前边1-992的结果
993TH similarity is 0.000
994TH similarity is 0.087
995TH similarity is 0.087
996TH similarity is 0.043
997TH similarity is 0.000
998TH similarity is 0.000
999TH similarity is 0.000
1000TH similarity is 0.043
the best similarity is 46TH 0.174

Python:如何用python编写无限猴子定理相关推荐

  1. python工业自动化镜头_ELVIS III + Python | 如何用Python对ELVIS III进行编程开发

    通过本文,你将学习如何在NI ELVIS III上安装和使用Python:连接到NI ELVIS III,安装包和库,下载存储库,运行Python代码. 1 - 软件环境搭建 配置ELVIS III设 ...

  2. python写乘法口诀-如何用python编写乘法口诀表

    如何用python编写乘法口诀表?首先要明确一下思路,我们可以确定x,y两个变量,弄清楚其变化的规律,再使用循环嵌套实现.下面是如何用Python编写乘法口诀表的具体方法. 第一种:使用for遍历循环 ...

  3. python rest api 测试_如何用Python编写REST API的单元测试

    在过去的几个月中,正在从事一个名为B的项目.它是带有简单Web UI的徽章生成器,用于添加数据并生成PDF可打印徽章.B后端现在已转移到REST-API并测试REST-API中使用的功能,我们需要一些 ...

  4. python写乘法口诀表好记方法_如何用python编写乘法口诀表

    如何用python编写乘法口诀表?首先要明确一下思路,我们可以确定x,y两个变量,弄清楚其变化的规律,再使用循环嵌套实现.下面是如何用Python编写乘法口诀表的具体方法. 第一种:使用for遍历循环 ...

  5. 如何用Python编写一个求 1到n阶乘之和的程序

    各位许久不见了,甚是想念! 前段时间我进入高中阶段学习,一直还没有适应,现在好些了就继续写博客了. 看到很多人关注我,点赞或是评论,我感觉太高兴了! C语言这块我暂时先放下了,我想自己学学Python ...

  6. 乘法口诀表python_如何用python编写乘法口诀表

    如何用python编写乘法口诀表?首先要明确一下思路,我们可以确定x,y两个变量,弄清楚其变化的规律,再使用循环嵌套实现.下面是如何用Python编写乘法口诀表的具体方法. 第一种:使用for遍历循环 ...

  7. 如何用Python语言编写源程序,读取Excel中数据,并画出柱状图?

    现在,随着计算机的普及,以及数据量的增多,对大型数据的分析已经是我们手算不能解决的了,必须借助计算机:那么,学习计算机其实也和我们学习中文.英文一样,要学习他们的写作规则,掌握其中原理.所以,我们首先 ...

  8. 如何用 Python 编写网页病毒

    如何用 Python 编写网页病毒,慎用噢 原创作者:Shane_hcker https://blog.csdn.net/Shane_hcker/article/details/112004870 本 ...

  9. 如何用python编写一个绘制马赛克图像的自写程序mask = np.zeros

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 这篇教程将会展示如何用python的图形化包"Pygame"和基础的文件I/O来创建一 ...

  10. python模拟火车订票系统_如何用python编写火车抢票助手

    前几天跟朋友说打算写一个抢票助手,最后由于某些原因念头打消了. 可就在昨天晚上,才隐约记起一年前的自己曾经说过:一年后我一定要写一个12306的抢票助手!瞬间激情澎湃,甚至已经是快临近凌晨时便开始动工 ...

最新文章

  1. Git clone密码输入错误如何修改
  2. SpringMVC解决@ResponseBody返回乱码问题
  3. mysql 备份表_MySQL中表的复制以及大型数据表的备份教程
  4. python gevent模块 下载_Python协程阻塞IO非阻塞IO同步IO异步IO
  5. 【问链财经-区块链基础知识系列】 第二十七课 区块链与分布式账本的异同
  6. VTK:字形2D用法实战
  7. python中deepcopy函数_python – copy.deepcopy使用自定义的__new __()方法在对象上引发TypeError...
  8. 解决IE8下body{ overflow:hidden;}无效的解决办法
  9. C++(STL):02---tuple容器
  10. nvidia控制面板点了没反应win7_win7系统Nvidia控制面板怎么设置?
  11. Java 方法使用final 修饰参数的作用
  12. 【报告分享】中国在线教育师生教学行为和教学条件研究报告.pdf(附下载链接)
  13. 统计匹配检索规则的物品数量
  14. ROS NOETIC 思岚激光雷达A2M8启动历程
  15. codewars 7×7 Skyscrapers 问题解决
  16. 凡是能用钱买来的时间就是便宜的;凡是能用时间换来的注意力持续就是有价值的。
  17. 逻辑与计算机设计基础实验报告,逻辑与计算机设计基础--课实验的报告.doc
  18. 最优秀的六种造字方法
  19. 编程实现:任意输入英文的月份,在查找月份表后输出其对应的中文提示。缩写也可查找。
  20. IPTV桌面系统建设物料和费用:服务器+软件+电视盒

热门文章

  1. Windows10安装Wing FTP Server操作说明
  2. 4.微信支付之刷卡支付
  3. palantir_Palantir开源的两个库– Cinch和Sysmon
  4. 使用Druid SQL Parser解析SQL
  5. 修改 google chrome 背景颜色为绿豆沙
  6. 零信任兴起:从理念到实践
  7. POJ-1436___Horizontally Visible Segments —— 线段树
  8. 安科瑞智能照明控制系统在医院行业的应用
  9. 多线程基础之设计模式Guarded Suspension模式
  10. 中国大学慕课mooc毛概考试答案参考