python实现马耳可夫链算法实例分析,python实例分析
python实现马耳可夫链算法实例分析,python实例分析
本文实例讲述了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中操作列表之list.extend()方法的使用,pythonlist.
- Python中List.index()方法的使用教程,pythonlist.index
- Python操作列表之List.insert()方法的使用,pythonlist.insert
- python定时检查某个进程是否已经关闭的方法,python进程
- python实现带声音的摩斯码翻译实现方法,python摩斯
- python使用PyGame模块播放声音的方法,pythonpygame
- Python实现在matplotlib中两个坐标轴之间画一条直线光标的
- python检测某个变量是否有定义的方法,python变量
- Python中subprocess模块用法实例详解,pythonsubprocess
- Python使用matplotlib绘制动画的方法,
评论关闭