每次在python中循环生成一个随机数

时间:2020-05-05 09:01:17

标签: python numpy random

我正在尝试模拟斑点的繁殖和死亡,每个斑点都有繁殖和死亡的机会。每次循环时,都应该生成一个随机的木料,以查看死亡率和出生率是否大于随机数,如果是,则创建或删除斑点。每个Blob都存储在列表Blob中。

问题是它似乎为所有斑点生成1个数字,所以没有一个人死亡或每个人一次死亡,但是我希望每个斑点都有不同的随机数。例如繁殖-死亡几率为0.5。

for blob in blobs:
        if blob.reproduce_chance > random.uniform(0,1):
            blobs.append(blob)
        if blob.death_chance > random.uniform(0,1):
            blobs.pop(blobs.index(blob))

1 个答案:

答案 0 :(得分:0)

import random

variation = 0

for blob in range(10):
        if 0.5 > random.uniform(0,1):
            print("New born at blob", blob)
            variation += 1
        if 0.5 > random.uniform(0,1):
            print("Death at blob", blob)
            variation -= 1
print("Blob count change:", variation)

输出:

Death at blob 1
New born at blob 2
Death at blob 2
New born at blob 4
Death at blob 4
New born at blob 5
Death at blob 5
New born at blob 6
Death at blob 6
New born at blob 7
New born at blob 8
Blob count change: 1

因此问题不是随机数生成器不是。 如评论中所述,这可能是由于在迭代列表时更改了列表。