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中测试访问同一数据的竞争条件的方法
Apr 23 Python
python字典的常用操作方法小结
May 16 Python
使用Python的Scrapy框架十分钟爬取美女图
Dec 26 Python
关于Python元祖,列表,字典,集合的比较
Jan 06 Python
Python 查看文件的读写权限方法
Jan 23 Python
在VS Code上搭建Python开发环境的方法
Apr 06 Python
Python使用sort和class实现的多级排序功能示例
Aug 15 Python
python+selenium实现QQ邮箱自动发送功能
Jan 23 Python
分享8个非常流行的 Python 可视化工具包
Jun 05 Python
利用python实现凯撒密码加解密功能
Mar 31 Python
Python配置pip国内镜像源的实现
Aug 20 Python
Appium+Python实现简单的自动化登录测试的实现
Jan 26 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获取浏览器信息类和客户端地理位置的2个方法
2014/04/24 PHP
Javascript中eval函数的使用方法与示例
2007/04/09 Javascript
JavaScript 应用类库代码
2008/06/02 Javascript
jquery animate 动画效果使用说明
2009/11/04 Javascript
基于jquery的二级联动菜单实现代码
2011/04/25 Javascript
基于jquery的无刷新分页技术
2011/06/11 Javascript
JS实现日期加减的方法
2013/11/29 Javascript
JavaScript关闭当前页面(窗口)不带任何提示
2014/03/26 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
获取阴历(农历)和当前日期的js代码
2016/02/15 Javascript
AngularJS基础 ng-dblclick 指令用法
2016/08/01 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
2017/10/16 Javascript
JS实现点餐自动选择框(案例分析)
2019/12/10 Javascript
three.js中多线程的使用及性能测试详解
2021/01/07 Javascript
Python中使用ConfigParser解析ini配置文件实例
2014/08/30 Python
Python遍历目录中的所有文件的方法
2016/07/08 Python
python在每个字符后添加空格的实例
2018/05/07 Python
学习python可以干什么
2019/02/26 Python
python批量解压zip文件的方法
2019/08/20 Python
python对常见数据类型的遍历解析
2019/08/27 Python
Python 使用元类type创建类对象常见应用详解
2019/10/17 Python
俄罗斯披萨、寿司和面食送货到家服务:2 Берега
2019/12/15 全球购物
JSF界面控制层技术
2013/06/17 面试题
服装电子商务创业计划书
2014/01/30 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
班子群众路线教育实践个人对照检查材料思想汇报
2014/09/30 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
工商行政处罚决定书
2015/06/24 职场文书
民主生活会主持词
2015/07/01 职场文书
《社戏》教学反思
2016/02/22 职场文书
小程序教您怎样你零成本推广获取数万用户的方法
2019/07/30 职场文书
JS 基本概念详细介绍
2021/10/16 Javascript
漫画「狩龙人拉格纳」公开TV动画预告图
2022/03/22 日漫