Найти в Дзене
Python-ист

Random в Python не даёт рандомные числа!

Если вы когда-нибудь имели дело с Python, то скорее всего знаете, что выведет этот код - случайное число от 0 до 1. Вот, совершенно случайные числа: Но если мы добавим в код строчку random.seed(0), при каждом запуске будет одно и то же число. Почему? Дело в том что это "рандомное число" - псевдо рандомное, и вычисляется по некой математической формуле. По умолчанию "random.seed" принимает текущее время. Но когда мы устанавливаем random.seek то результат один и тот же. "Если это число вычисляется на основе времени, то через некоторое время эти числа начнут повторятся?" - скажите вы и будете абсолютно правы. Для простых задач - генерации случайного игрового уровня в игре к примеру этого достаточно. Но для систем шифрования это не подходит. Для большего понимания давайте рассмотрим простой пример: Напишем вот такой код, кратко объясню: Но в данном случае мы будем получать примерно одинаковые числа, для исправления этого мы увеличим значения a, c и m: Теперь наш код выводит каждый раз раз

Если вы когда-нибудь имели дело с Python, то скорее всего знаете, что выведет этот код - случайное число от 0 до 1. Вот, совершенно случайные числа:

-2
-3
-4

Но если мы добавим в код строчку random.seed(0), при каждом запуске будет одно и то же число.

-5

Почему?

Дело в том что это "рандомное число" - псевдо рандомное, и вычисляется по некой математической формуле. По умолчанию "random.seed" принимает текущее время. Но когда мы устанавливаем random.seek то результат один и тот же. "Если это число вычисляется на основе времени, то через некоторое время эти числа начнут повторятся?" - скажите вы и будете абсолютно правы. Для простых задач - генерации случайного игрового уровня в игре к примеру этого достаточно. Но для систем шифрования это не подходит.

Для большего понимания давайте рассмотрим простой пример:

-6

Напишем вот такой код, кратко объясню:

Но в данном случае мы будем получать примерно одинаковые числа, для исправления этого мы увеличим значения a, c и m:

-7

Теперь наш код выводит каждый раз разные псевдо рандомные числа.

Надеюсь я всё понятно вам обьяснил и показал, спасибо за уделённое время этой статье!

#програмирование

#python

#рандомыечисла