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基于mysql实现的简单队列以及跨进程锁实例详解
Jul 07 Python
python实现简单socket程序在两台电脑之间传输消息的方法
Mar 13 Python
完美解决Python2操作中文名文件乱码的问题
Jan 04 Python
Python实现将照片变成卡通图片的方法【基于opencv】
Jan 17 Python
Python断言assert的用法代码解析
Feb 03 Python
Python TestCase中的断言方法介绍
May 02 Python
python2和python3在处理字符串上的区别详解
May 29 Python
使用python写的opencv实时监测和解析二维码和条形码
Aug 14 Python
python实现ip地址的包含关系判断
Feb 07 Python
python+adb命令实现自动刷视频脚本案例
Apr 23 Python
Python实现SMTP邮件发送
Jun 16 Python
Pycharm 解决自动格式化冲突的设置操作
Jan 15 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判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
PHP屏蔽过滤指定关键字的方法
2014/11/03 PHP
PHP实现根据银行卡号判断银行
2015/04/29 PHP
php判断两个日期之间相差多少个月份的方法
2015/06/18 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
2010/03/15 Javascript
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
JS获取图片实际宽高及根据图片大小进行自适应
2013/08/11 Javascript
jquery 3D 标签云示例代码
2014/06/12 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
2016/07/07 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
2016/11/04 Javascript
bootstrap手风琴制作方法详解
2017/01/11 Javascript
详解VueJs前后端分离跨域问题
2017/05/24 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
2019/09/18 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
2020/07/22 Javascript
详解python中xlrd包的安装与处理Excel表格
2016/12/16 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
python 统计数组中元素出现次数并进行排序的实例
2018/07/02 Python
python输入多行字符串的方法总结
2019/07/02 Python
python 爬取疫情数据的源码
2020/02/09 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
2020/06/04 Python
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
DTD的含义以及作用
2014/01/26 面试题
出国留学介绍信
2014/01/13 职场文书
银行办理业务介绍信
2014/01/18 职场文书
学校庆元旦歌咏比赛主持词
2014/03/18 职场文书
校园安全演讲稿
2014/05/09 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
实习感想范文
2015/08/10 职场文书
青岛市的收音机研制与生产
2022/04/07 无线电