генерация случайного числа каждый раз в al oop in python - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь смоделировать размножение и гибель капель, и у каждой капли есть шанс на воспроизведение и смерть. Каждый раз в al oop предполагается, что он генерирует случайное число, чтобы увидеть, больше ли смертность и рождаемость, чем случайное число, если да, создайте или удалите каплю. каждый большой двоичный объект хранится в списке больших двоичных объектов.

Проблема в том, что он, кажется, генерирует 1 номер для всех blob, так что никто не умирает или все умирают сразу, но мне нужны разные случайности для каждого 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))

1 Ответ

0 голосов
/ 05 мая 2020
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

Итак, проблема не с генератором случайных чисел. Как сказано в комментариях, это может быть связано с изменением списка во время итерации по нему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...