擅长:python、mysql、java
<p>你需要考虑时间吗?我不太熟悉这些东西,但这个简化版本至少给出了随着时间的推移接近于零的结果。你知道吗</p>
<pre><code>import random
TIME = 100000.0
a = 10.0 # birth rate
b = 1.0 # death rate
n = 0 # initial population
t = 0.0 # initial time
t_average_pop = 0.0
while True:
P0 = a + b * n
# step the time
step = random.expovariate(P0)
t += step
t_average_pop += n * step
if t >= TIME:
break
# select the transition
if random.uniform(0, P0) < a:
# birth
n += 1
else:
# death
n -= 1
average_pop = t_average_pop / t
expected = a / b
print((average_pop - expected) / expected * 100)
</code></pre>