Numpy генератор случайных целых чисел не покрывает полный интервал? - PullRequest
0 голосов
/ 30 апреля 2020

При генерации случайных целых чисел через (почти) полный интервал, разрешенный int64, сгенерированные целые числа, похоже, генерируются в меньшем диапазоне. Я использую следующий код:

import numpy
def randGenerationTest(n_gens=100000):
    min_int = 2**63
    max_int = 0
    for _ in range(n_gens) :
        randMatrix = numpy.random.randint(low=1, high = 2**63, size=(1000,1000))
        a = randMatrix.min()
        b = randMatrix.max()
        if a < min_int:
            min_int = a
        if b > max_int :
            max_int = b
    return min_int, max_int

, который возвращает следующее:

randomGenerationTest()
>>> (146746577, 9223372036832037133)

Я согласен, что [1, 146746577] представляет собой лишь небольшую часть полного диапазона I пытаюсь получить, но в 1e11 случайных целых чисел, сгенерированных в диапазоне [1,2 ^ 63), я должен был хотя бы один раз приблизиться к моим границам? Это ожидаемое поведение при использовании слишком больших интервалов? Или это потому, что я, как человек, не могу понять, насколько огромны эти интервалы и что я уже "достаточно близок"?

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

Ответы [ 2 ]

1 голос
/ 30 апреля 2020

Разница ваших макс. число 9223372036832037133 до верхней границы интервала 2**63 - 1 равно 22738674. Это всего около 1004 * полного диапазона. То же самое относится к мин. значение 146746577, которое имеет расстояние до нижней границы около 1.59e-11 относительно полного диапазона интервала. Это означает, что вы охватили более 99,9999999999% диапазона интервала, т. Е. Почти все.

1 голос
/ 30 апреля 2020

Вы генерируете 10 ^ 3 * 10 ^ 3 * 10 ^ 5 = 10 ^ 11 значений. 2 ^ 63/10 ^ 11 ~ = 10e + 08. Вы даже не близки к заполнению пространства ценностей. Грубо говоря, если вы выбираете 1/10 ^ n элементов из равномерного пространства, минимальная и максимальная выборки, составляющие ~ n порядка от максимального и минимального элемента, кажутся довольно разумными.

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