我正在尝试模拟斑点的繁殖和死亡,每个斑点都有繁殖和死亡的机会。每次循环时,都应该生成一个随机的木料,以查看死亡率和出生率是否大于随机数,如果是,则创建或删除斑点。每个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))
答案 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
因此问题不是随机数生成器不是。 如评论中所述,这可能是由于在迭代列表时更改了列表。