python实现马耳可夫链算法实例分析
作者:aiqier 时间:2022-08-13 00:27:08
本文实例讲述了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,算法
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
备战618!用Python脚本帮你实现淘宝秒杀
2022-05-15 04:43:40
![](https://img.aspxhome.com/file/2023/4/78674_0s.png)
理解HTTP消息头
2008-12-10 14:06:00
Python设计模式中的状态模式你了解吗
2023-07-14 08:20:28
![](https://img.aspxhome.com/file/2023/2/60962_0s.png)
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2023-11-16 13:00:48
Python中print函数简单使用总结
2022-08-07 19:28:36
![](https://img.aspxhome.com/file/2023/8/64728_0s.png)
如何增大MYSQL数据库连接数
2010-10-25 20:28:00
Python爬取百度翻译实现中英互译功能
2023-04-29 08:32:26
![](https://img.aspxhome.com/file/2023/3/90763_0s.jpg)
微软补丁KB967723造成MySQL频繁无法连接
2009-11-03 14:28:00
Python面向对象之反射/自省机制实例分析
2022-07-27 06:57:53
jQuery方法扩展:type, toJSON, evalJSON
2009-02-15 12:42:00
python性能检测工具函数运行内存及运行时间
2021-11-24 00:09:27
![](https://img.aspxhome.com/file/2023/8/80818_0s.png)
Windows mysql命令行导入 .sql文件
2010-12-03 16:12:00
Python类属性与实例属性用法分析
2022-10-12 03:14:58
python爬虫之爬取百度翻译
2022-04-03 19:30:45
![](https://img.aspxhome.com/file/2023/6/83926_0s.png)
如何在Django项目中引入静态文件
2021-10-09 11:24:52
![](https://img.aspxhome.com/file/2023/1/71491_0s.png)
django-crontab实现服务端的定时任务的示例代码
2021-02-13 05:15:06
ajax实现Dig程序中的投票
2008-01-22 17:27:00
![](https://img.aspxhome.com/file/UploadPic/20081/22/2008122173320740s.jpg)
Python使用psutil获取进程信息的例子
2021-11-03 07:29:47
层叠加的五条叠加法则
2009-05-01 12:07:00
![](https://img.aspxhome.com/file/UploadPic/20095/1/01-99s.gif)
sql函数:去掉html代码
2008-04-07 12:44:00