【发布时间】:2022-01-24 07:15:16
【问题描述】:
我正在尝试通过使用具有特定概率的随机数选择来在 python 中使用马尔可夫链。我从 youtube 视频中找到了一个代码,但我认为我遗漏了一些东西。我想生成随机的数字序列(“0”或“1”) 这是代码:
n = 4 #steps
start_state = 0
prev_state = start_state
A =np.array([[0.5, 0.5], [0, 1]])
while n-1:
curr_state= np.random.choice([0, 1], p=A[prev_state])
print(state[curr_state])
prev_state = start_state
n -= 1
print("stop")
矩阵 A 是转移矩阵,根据这一点,如果系统进入状态“1”,则不能进入状态“0”(矩阵 A 中的概率为零)。
所以我不能得到像 s1=[1 0 1] 或 s2=[1 0 0] 这样的序列,而是这样的序列:s3=[1 1 1]。 我得到的其余序列很好。
你能帮我解决这个问题吗?可能我错过了代码的作用。
提前致谢!
【问题讨论】:
标签: python sequence markov-chains