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 相关文章推荐
pytyon 带有重复的全排列
Aug 13 Python
Python和php通信乱码问题解决方法
Apr 15 Python
Windows下安装python MySQLdb遇到的问题及解决方法
Mar 16 Python
详解Python 序列化Serialize 和 反序列化Deserialize
Aug 20 Python
Python实现在某个数组中查找一个值的算法示例
Jun 27 Python
python pandas生成时间列表
Jun 29 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
Aug 06 Python
Python递归函数 二分查找算法实现解析
Aug 12 Python
如何用OpenCV -python3实现视频物体追踪
Dec 04 Python
python opencv根据颜色进行目标检测的方法示例
Jan 15 Python
Keras实现将两个模型连接到一起
May 23 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
Oct 31 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中使用preg_replace函数匹配图片并加上链接的方法
2013/02/06 PHP
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
php命令行使用方法和命令行参数说明
2014/04/08 PHP
php输入数据统一类实例
2015/02/23 PHP
PHP之预定义接口详解
2015/07/29 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
jquery实现图片上传之前预览的方法
2015/07/11 Javascript
Javascript 计算字符串在localStorage中所占字节数
2015/10/21 Javascript
jQuery滚动新闻实现代码
2016/06/26 Javascript
AngularJS使用ng-repeat指令实现下拉框
2016/08/23 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
ajax接收后台数据在html页面显示
2017/02/19 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
Ionic学习日记实现验证码倒计时
2018/02/08 Javascript
解决Vue2.0中使用less给元素添加背景图片出现的问题
2018/09/03 Javascript
vue视频播放暂停代码
2019/11/08 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
python显示生日是星期几的方法
2015/05/27 Python
python实现redis三种cas事务操作
2017/12/19 Python
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
Python实现带参数的用户验证功能装饰器示例
2018/12/14 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
django之从html页面表单获取输入的数据实例
2020/03/16 Python
pytorch 中forward 的用法与解释说明
2021/02/26 Python
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
华为菲律宾官方网站:HUAWEI Philippines
2021/02/23 全球购物
思想政治自我鉴定
2013/10/06 职场文书
总务岗位职责
2013/11/19 职场文书
十八届三中全会报告学习材料
2014/02/17 职场文书
党的群众路线教育实践活动心得体会(企业)
2014/11/03 职场文书
消防宣传标语大全
2015/08/03 职场文书
Python 数据可视化之Bokeh详解
2021/11/02 Python