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

2024-05-14 00:58:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图模拟水滴的繁殖和死亡,每个水滴都有繁殖和死亡的机会。在一个循环中,每次都应该产生一个随机的隆隆声,看看死亡和出生率是否大于随机数,如果是,则创建或删除一个blob。每个blob都存储在一个blob列表中

问题是,它似乎为所有blob生成了1个数字,因此没有人死亡或每个人同时死亡,但我希望每个blob都有不同的随机数。例如,生殖和死亡几率为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))

Tags: in列表forif数字randomuniformblob
1条回答
网友
1楼 · 发布于 2024-05-14 00:58:02
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

所以问题是而不是随机数生成器。 正如评论中所说,这可能是因为在迭代列表时更改了列表

相关问题 更多 >