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多线程结合队列下载百度音乐的方法
Jul 27 Python
Appium+Python自动化测试之运行App程序示例
Jan 23 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
Jun 13 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
Jun 27 Python
wxpython布局的实现方法
Nov 01 Python
python argparser的具体使用
Nov 10 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
Jan 22 Python
opencv python图像梯度实例详解
Feb 04 Python
什么是Python中的匿名函数
Jun 02 Python
keras load model时出现Missing Layer错误的解决方式
Jun 11 Python
python产生模拟数据faker库的使用详解
Nov 04 Python
python3中TQDM库安装及使用详解
Nov 18 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开发中csrf攻击的简单演示和防范
2017/05/07 PHP
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
有关于JS辅助函数inherit()的问题
2013/04/07 Javascript
cookie.js 加载顺序问题怎么才有效
2013/07/31 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
2014/05/20 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
详解.vue文件中监听input输入事件(oninput)
2017/09/19 Javascript
Javascript实现运算符重载详解
2018/04/07 Javascript
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
2018/04/27 jQuery
微信小程序自定义带价格显示日历效果
2018/12/29 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
2019/11/01 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
python翻译软件实现代码(使用google api完成)
2013/11/26 Python
快速了解Python中的装饰器
2018/01/11 Python
解决python线程卡死的问题
2019/02/18 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
基于Python的图像数据增强Data Augmentation解析
2019/08/13 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
django框架两个使用模板实例
2019/12/11 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
2020/04/27 Python
css3 border-image使用说明
2010/06/23 HTML / CSS
Ego Shoes官网:英国时髦鞋类品牌
2020/10/19 全球购物
酒吧总经理岗位职责
2013/12/10 职场文书
大学学习生活感言
2014/01/18 职场文书
情人节寄语大全
2014/04/11 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
报到证办理个人委托书
2014/10/06 职场文书
学习作风建设心得体会
2014/10/22 职场文书
2015政治思想表现评语
2015/03/25 职场文书
2016年助残日旅游活动总结
2016/04/01 职场文书
Java 轮询锁使用时遇到问题
2022/05/11 Java/Android