from graphviz import Digraph from markov import Chain from markov.plot import transitions_to_graph def double_dice(): return int(random() * 6) + int(random() * 6) chain = Chain(11, double_dice()) # flip coin many times and build Markov chain for this process # let 0 be heads and 1 tails for i in range(1000000): chain.learn(double_dice()) g = Digraph(format='svg', engine='dot', graph_attr={ 'overlap': 'false', 'pad': '0.1', 'nodesep': '0.35', 'ranksep': '0.35' }, edge_attr={ 'fontname': 'Helvetica', 'fontsize': '8.0' }, node_attr={'fontname': 'Helvetica'})
from random import betavariate from graphviz import Digraph from markov import Chain from markov.plot import transitions_to_graph def rigged_dice(): return int((betavariate(0.5, 0.7) * 6)) chain = Chain(6, rigged_dice()) # roll dice many times and build Markov chain for this process for i in range(100000): chain.learn(rigged_dice()) def state_mapping(state): if state == 0: return u'⚀' if state == 1: return u'⚁' if state == 2: return u'⚂' if state == 3: return u'⚃' if state == 4: return u'⚄' if state == 5: return u'⚅' g = Digraph(format='svg', engine='dot', graph_attr={'pad': '0.1', 'nodesep': '0.15', 'ranksep': '0.5'}, edge_attr={'fontsize': '6.0', 'fontname':'Helvetica'})