python实现马耳可夫链算法实例分析

 更新时间:2015年05月20日 11:54:28   作者:aiqier  
这篇文章主要介绍了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程序设计有所帮助。

相关文章

  • Django视图扩展类知识点详解

    Django视图扩展类知识点详解

    这篇文章主要介绍了Django视图扩展类知识点以及实例代码,需要的朋友们可以学习下。
    2019-10-10
  • python 简单搭建阻塞式单进程,多进程,多线程服务的实例

    python 简单搭建阻塞式单进程,多进程,多线程服务的实例

    下面小编就为大家带来一篇python 简单搭建阻塞式单进程,多进程,多线程服务的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • 在Django中创建动态视图的教程

    在Django中创建动态视图的教程

    这篇文章主要介绍了在Django中创建动态视图的教程,Django是Python重多人气框架中最为著名的一个,需要的朋友可以参考下
    2015-07-07
  • python Manager 之dict KeyError问题的解决

    python Manager 之dict KeyError问题的解决

    今天小编就为大家分享一篇python Manager 之dict KeyError问题的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • pycharm sciview的图片另存为操作

    pycharm sciview的图片另存为操作

    这篇文章主要介绍了pycharm sciview的图片另存为操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Django 自定义404 500等错误页面的实现

    Django 自定义404 500等错误页面的实现

    这篇文章主要介绍了Django 自定义404 500等错误页面的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Python实现打砖块小游戏代码实例

    Python实现打砖块小游戏代码实例

    这篇文章主要介绍了Python打砖块小游戏,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Python中使用md5sum检查目录中相同文件代码分享

    Python中使用md5sum检查目录中相同文件代码分享

    这篇文章主要介绍了Python中使用md5sum检查目录中相同文件代码分享,本文直接给出实现代码,需要的朋友可以参考下
    2015-02-02
  • Gradio机器学习模型快速部署工具接口状态

    Gradio机器学习模型快速部署工具接口状态

    这篇文章主要为大家介绍了Gradio机器学习模型快速部署工具接口状态的原文翻译,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • python循环嵌套的多种使用方法解析

    python循环嵌套的多种使用方法解析

    这篇文章主要介绍了python循环嵌套的多种使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11

最新评论