更新for循环内的numpy数组不起作用

时间:2019-04-08 14:51:04

标签: python-2.7

我想记下某个事件,所以我写了一小段代码:-

import numpy as np
import matplotlib.pyplot as plt

k = 25
q = 0.6
p = 1-q
N = 100
n = np.zeros(10001)

gens = 1000

#print len(n)
p_ruin = np.zeros(len(n), dtype=np.int64)
#print p_ruin

for i in range(gens):

    cur = k
    cnt = 0

    while cnt<10000:

        #print cnt
        r = np.random.uniform()
        if r<=q:
            cur-=1
        else:
            cur+=1
        cnt+=1
        if cur==0 or cur==N:
            break

    p_ruin[cnt]+=1
    #print p_ruin[cnt]
    #print p_ruin

print p_ruin

for i in range(1,len(n)):

    p_ruin[i]+=p_ruin[i-1]

for i in range(1,len(n)):

    p_ruin[i] = float(p_ruin[i])/gens

plt.plot(n[1:len(n)-1],p_ruin[1:len(n)-1])
plt.show()

我希望p_ruin数组可以计数,但是它的所有值都是0。我已经调试了很长时间,现在看不到什么地方了。

0 个答案:

没有答案