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 相关文章推荐
通过C++学习Python
Jan 20 Python
Python XML转Json之XML2Dict的使用方法
Jan 15 Python
对python使用telnet实现弱密码登录的方法详解
Jan 26 Python
pthon贪吃蛇游戏详细代码
Jan 27 Python
使用python实现抓取腾讯视频所有电影的爬虫
Apr 15 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
Jun 28 Python
Django对数据库进行添加与更新的例子
Jul 12 Python
对python中基于tcp协议的通信(数据传输)实例讲解
Jul 22 Python
利用matplotlib实现根据实时数据动态更新图形
Dec 13 Python
Alpine安装Python3依赖出现的问题及解决方法
Dec 25 Python
python munch库的使用解析
May 25 Python
OpenCV 图像梯度的实现方法
Jul 25 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
不用数据库的多用户文件自由上传投票系统(2)
2006/10/09 PHP
《PHP边学边教》(02.Apache+PHP环境配置――上篇)
2006/12/13 PHP
ajax php 实现写入数据库
2009/09/02 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
2017/04/27 PHP
Yii2实现ActiveForm ajax提交
2017/05/26 PHP
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
微信小程序 canvas API详解及实例代码
2016/10/08 Javascript
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
详解在vue-test-utils中mock全局对象
2018/11/07 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
js实现GIF动图分解成多帧图片上传
2019/10/24 Javascript
vue data引入本地图片的两种方式小结
2019/11/13 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
jQuery带控制按钮轮播图插件
2020/07/31 jQuery
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
[原创]pip和pygal的安装实例教程
2017/12/07 Python
详解python算法之冒泡排序
2019/03/05 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
python logging模块的使用
2020/09/07 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
2020/11/30 HTML / CSS
英国最大的百货公司:Harrods
2016/08/18 全球购物
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
招商经理岗位职责
2013/11/16 职场文书
县委常委班子对照检查材料思想汇报
2014/09/28 职场文书
党的群众路线教育实践活动心得体会(医院)
2014/11/03 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
2015年学生会主席工作总结
2015/04/21 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
我的暑假生活作文(五年级)范文
2019/08/07 职场文书
Python图片验证码降噪和8邻域降噪
2021/08/30 Python
java objectUtils 使用可能会出现的问题
2022/02/28 Java/Android