阿米巴种群的蒙特卡罗模拟

时间:2018-01-30 06:51:51

标签: python montecarlo

我遇到了脑筋急转弯问题。我试图模拟它,但无法得到答案。问题是这样的:有一个阿米巴变形虫。每一分钟,变形虫都可能死亡,保持不变,分成2或分成3等概率。它的所有后代都会以同样的方式行事,独立于其他变形虫。变形虫种群死亡的概率是多少?

我在python中的实现:

import numpy as np


def simulate(n):
    prob = np.array([0.25]*4)
    ans = np.random.choice(np.arange(4),1,p=prob)

    if ans == 0:
        n = n - 1
    if ans == 1:
        pass
    if ans == 2:
        n = n * 2
    if ans == 3:
        n = n*3
    return n


count = 0
for i in range(10000):
    nold = 1
    while True:
        nnew = simulate(nold)
        if nnew == 0: #amoeba has died
            count += 1
            break;
        nold = nnew

我得到一个无限循环。有人可以帮忙吗?谢谢。答案是41%

1 个答案:

答案 0 :(得分:0)

While循环需要有某种断点。

你没有设置什么是假。

while count < 10000:
    ...