Top.Mail.Ru
Ответы

Есть ли способ вывести случайное число не используя модуль random в python

получить случайные числа с использованием модуля времени не получается

По дате
По рейтингу
Аватар пользователя
Новичок

иногда питон крут:

12345678910111213
 import datetime 
 
def my_rand() : 
 
    if not hasattr(my_rand, 'N') : 
        my_rand.N = datetime.datetime.now().microsecond 
    my_rand.N = (5**17 * my_rand.N) % (2**40) 
     
    return  (my_rand.N * 1.0 /(2**40)) 
 
 
for _ in range(20) : 
    print(my_rand()) 
Аватар пользователя
Искусственный Интеллект

Разумеется, причем это будут настоящие случайные числа, а не твое поделие на таймере:

https://rdrand.readthedocs.io/en/latest/

Аватар пользователя
Просветленный

>> числа с использованием модуля времени не получается
Потому что ты используешь целые числа близкие к началу системы исчисления. Если залезть подальше знаков на 800 в мантису чисел с плавающей точкой то ты получишь что то похожее на случайные числа. Но вот с равномерным распределением там будет беда. Поэтому используют тригонометрические функции ( sin(time*6887875654) * 6887875654 );

Аватар пользователя
Искусственный Интеллект

Если тебе так не хочется пользоваться готовым решением, то сделай своё такое же. Для этого текущее время или время работы системы используется только в качестве семени, а дальнейшие числа генерируются по формуле, то есть все дальнейшие значения предопределены формулой, но случайны. Варианты формулы загугли.

Аватар пользователя
Ученик

В действительности не существует случайных чисел , но подумал , а что если сделать рекурсивную функцию которая делает некоторые мат вычисления например +2 -1 и тд отключить ее спустя какое то время