python实现马耳可夫链算法实例分析


Posted in Python onMay 20, 2015

本文实例讲述了python实现马耳可夫链算法的方法。分享给大家供大家参考。具体分析如下:

在《程序设计实践》(英文名《The Practice of Programming》)的书中,第三章分别用C语言,C++,AWK和Perl分别实现了马耳可夫链算法,来通过输入的文本,“随机”的生成一些有用的文本。

说明:

1. 程序使用了字典,字典和散列可不是一个东西,字典是键值对的集合,而散列是一种能够常数阶插入,删除,不过可以用散列来实现字典。
2. 字典的setdefault()方法使得程序少了许多条件判断。
3. random.choice()可以随机取出一个序列中的元素。
4. 每两个前缀词确定一个后缀。

实现代码:

import random
import sys
MAXGEN = 10000
NONWORD = '\n'
w1 = w2 = NONWORD
statetab = {}
text = sys.stdin.read()
words = text.split()
for word in words:
  statetab.setdefault((w1, w2),[]).append(word)
  w1, w2 = w2, word
# add tail
statetab.setdefault((w1, w2),[]).append(NONWORD)
# show mar words
w1 = w2 = NONWORD
for i in xrange(MAXGEN):
  suf = statetab[(w1,w2)]
  t = random.choice(suf)
  if t == NONWORD:
 break
  print t
  w1, w2 = w2, t

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python实现socket端口重定向示例
Feb 10 Python
简单介绍Python下自己编写web框架的一些要点
Apr 29 Python
vscode 远程调试python的方法
Dec 01 Python
Python数据可视化正态分布简单分析及实现代码
Dec 04 Python
python和flask中返回JSON数据的方法
Mar 26 Python
java中两个byte数组实现合并的示例
May 09 Python
selenium+python自动化测试环境搭建步骤
Jun 03 Python
python matplotlib 画dataframe的时间序列图实例
Nov 20 Python
Python代码生成视频的缩略图的实例讲解
Dec 22 Python
一文解决django 2.2与mysql兼容性问题
Jul 15 Python
Python爬虫爬取糗事百科段子实例分享
Jul 31 Python
python字符串拼接+和join的区别详解
Dec 03 Python
Python中List.count()方法的使用教程
May 20 #Python
在Python中操作列表之List.append()方法的使用
May 20 #Python
简单介绍Python2.x版本中的cmp()方法的使用
May 20 #Python
python操作mongodb根据_id查询数据的实现方法
May 20 #Python
Python中列表的一些基本操作知识汇总
May 20 #Python
python对数组进行反转的方法
May 20 #Python
在Python中处理字符串之isdecimal()方法的使用
May 20 #Python
You might like
php FLEA中二叉树数组的遍历输出
2012/09/26 PHP
php操作redis缓存方法分享
2015/06/03 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
2016/07/20 PHP
jQuery html()方法使用不了无法显示内容的问题
2014/08/06 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
vue自定义全局组件(自定义插件)的用法
2018/01/30 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
移动端手指操控左右滑动的菜单
2019/09/08 Javascript
浅析js实现网页截图的两种方式
2019/11/01 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
vue.js实现简单购物车功能
2020/05/30 Javascript
JS获取一个字符串中指定字符串第n次出现的位置
2021/02/10 Javascript
python中子类调用父类函数的方法示例
2017/08/18 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
python读写csv文件的方法
2019/08/13 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
详解Django配置JWT认证方式
2020/05/09 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
python处理写入数据代码讲解
2020/10/22 Python
如何利用python生成MD5并去重
2020/12/07 Python
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
口腔医学技术应届生求职信
2013/11/09 职场文书
在校实习生求职信
2014/06/18 职场文书
创新社会管理心得体会
2014/09/12 职场文书
人身损害赔偿协议书格式
2014/11/01 职场文书
警告通知
2015/04/25 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
文案策划岗位个人自我评价(范文)
2019/08/08 职场文书
关于考试抄袭的检讨书
2019/11/02 职场文书
SQL注入详解及防范方法
2021/12/06 MySQL
68行Python代码实现带难度升级的贪吃蛇
2022/01/18 Python
python 镜像环境搭建总结
2022/09/23 Python