Как использовать random.seed для создания нескольких разных начальных псевдослучайных чисел в Python? - PullRequest
0 голосов
/ 09 апреля 2019

Я использую random.seed для генерации псевдослучайных чисел в течение определенного числа итераций.Однако с помощью этого метода для одного и того же числа итераций он каждый раз генерирует одно и то же начальное значение.Мне интересно, есть ли способ написать код для генерации 4 разных случайных начальных значений, которые находятся в разных местах в диапазоне параметров?Например, мой код выглядит так:

import random

N=10
random.seed(N)
vx1 = [random.uniform(-3,3) for i in range(N)]

И каждый раз, когда это генерирует начальный vx1[0] = 0.428.Есть ли способ написать код для генерации четырех разных начальных значений vx1?Таким образом, начальное значение для vx1 может быть равно 0,428 или 3 другим значениям.Тогда каждое начальное значение также будет иметь следующие 9 случайных чисел в диапазоне.

1 Ответ

1 голос
/ 09 апреля 2019

Я думаю, у вас есть фундаментальное недопонимание относительно того, что делает random.seed.Генераторы «случайных» чисел являются фактически детерминированными системами, которые генерируют псевдослучайные числа.Семя является меткой для воспроизводимого начального состояния.Весь смысл в том, что для одного и того же начального числа будет сгенерирована одинаковая последовательность чисел.

Если вы хотите создать воспроизводимую последовательность из 1 000 000 чисел, используйте начальное число:

s = 10
N = 1000000

random.seed(s)
vx1 = [random.uniform(-3, 3) for i in range(N)]

Если вы хотите каждый раз генерировать другую последовательность , каждый раз используйте разные начальные числа.Самый простой способ сделать это - просто не звонить seed:

N = 1000000

vx1 = [random.uniform(-3, 3) for i in range(N)]
...