Как сделать рандомное число в python

Обновлено: 08.07.2024

Модуль random в Python дает возможность генерировать случайные числа и выбирать случайные элементы из списка. Но давайте обо всем по порядку.

Для некоторых задач нужно использовать элемент случайности. Например, вы решаете, кто из игроков будет ходить белыми шахматами, а кто — черными. Или же работаете над игрой, в которой случайным образом перемешиваются карты в колоде. Фактор случайности пригодится и при проведении розыгрыша с призами.

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

В 1997 году японские ученые Макото Мацумото и Такудзи Нисимура разработали математический алгоритм для генерации случайной величины, который называется вихрь Мерсенна. Хотя этот алгоритм не является криптостойким, он часто используется в программировании для решения простых задач, где вопрос безопасности не критичен.

Генератор случайных чисел в Python работает по этому же алгоритму и реализован в виде подключаемого модуля random. Модули в Python — это отдельные файлы, содержащие нужные функции. Чтобы подключить модуль random, необходимо его импортировать с помощью команды import random.

К модулю random можно подключить очень много функций и использовать их в разных ситуациях. Давайте познакомимся с ними поближе.

Функции модуля random

Генерация случайных чисел: примеры использования

Составление плей-листа

Предположим, что у нас есть список музыкальных исполнителей (myplaylist) и нам нужно выбрать всего три наименования:

Случайное воспроизведение

В любом плеере есть функция случайного воспроизведения. Попробуем реализовать это с помощью Python, перемешивая треки в заранее составленном плей-листе:

Несколько случайных чисел в заданном диапазоне

Представим, что нам нужно получить семь раз случайное число в диапазоне от трех до девяти:

Победитель розыгрыша

Представим, что нам нужно выбрать случайным образом победителя розыгрыша из списка. С Python это очень удобно реализуется:

Случайное дробное число в нужном диапазоне

Представим, что нам нужно получить случайное дробное число в диапазоне от 20 до 40:

Здесь мы обсудим функцию randrange() случайного модуля. Метод random.randrange() в Python используется для генерации случайного числа в диапазоне, указанном в ее параметре. Он принимает три параметра: начальный номер, конечный номер и ширину, которая используется для пропуска числа в диапазоне.

Синтаксис random.randrange()

Функция random.randrange() возвращает случайное целое число в заданном диапазоне, т.е. начало и конец. Функция random.randrange() принимает три параметра в качестве входных значений: start, stop и width. Из этих трех параметров start и width не являются обязательными.

  • Параметр start — это целое число с начальным или нижним пределом в случайном диапазоне. Если начальный параметр не передан в параметре, он принимает значение по умолчанию 0(ноль).
  • Параметр stop — это последнее число или целое число верхнего предела в случайном диапазоне.
  • Параметр width — это диапазон между каждым числом в случайной последовательности. Этот параметр является необязательным, и если параметр ширины не передается в параметре, он принимает значение по умолчанию 1(один).

Функция randrange(start, stop, width) не включает параметр конца при генерации случайного целого числа. Параметр stop является эксклюзивным и не генерируется случайным числом.

Посмотрите на эту функцию random.randrange(3, 30, 3), которая будет генерировать любое случайное целочисленное значение от 3 до 30, например 3, 6, 9, 12,… 27. Но эта функция никогда не включит 30 при генерации случайного числа.

Создание случайного числа в приложении всегда было важным, и оно имеет несколько применений в повседневной жизни в реальном времени. Например, создание и отправка случайного числа клиенту в качестве OTP (одноразового пароля) для выполнения безопасной транзакции. Другой пример генерации случайного числа используется во время игры в ludo для генерации случайного числа игральных костей.

Пример 1: random.randrange() генерирует случайное целое число в заданном диапазоне

В этом примере показаны все различные формы функции random.randrange().

Генерация случайного целого числа в заданном диапазоне

Пример 2: создание случайного диапазона целых чисел, кратного n

Давайте сгенерируем случайное целое число от 5 до 100, которое является диапазоном 5, например 5, 10, 25,…, 90, 95.

Создание случайного диапазона целых чисел, кратного n

Пример 3. Создание случайного целого числа определенной длины

Вы также можете сгенерировать случайное целое число определенной длины. Если вы хотите сгенерировать случайное число длиной 3, введите параметр start и stop в функции randrange() как наименьшее число длиной 3 цифры(100) и наименьшее число длиной 4 цифры(1000), потому что он генерирует случайное число Трехзначная форма от 100 до 999, где 4 цифры(1000) исключены.

Пример 4: Создание случайного отрицательного целого числа

Давайте посмотрим на пример, который генерирует случайное отрицательное целое число от -50 до -10.

Пример 5. Создание случайного положительного или отрицательного целого числа

Вот некоторые из других функций модуля random в Python, которые используются для случайной генерации чисел:

  • choice()
  • randint()
  • sample()
  • sort()

В этом примере мы предоставляем последовательность(список) в качестве параметра и возвращаем один случайный элемент.

random.randint()

Функция Python random.randint() используется для генерации случайного целого числа в указанном диапазоне.

Функция random.randint() принимает два параметра: start (начальный диапазон) и stop (конечный диапазон). Оба параметра включаются при генерации случайного числа.

Пример random.randint(), генерирующий список случайных целых чисел:

В этом примере будет создан список из нескольких случайных целых чисел с помощью функции randint(). Создание списка из 5 случайных целых чисел от 1 до 100, включая оба значения.

Однако может существовать вероятность того, что функция random.randint() вернет повторяющееся число в выходном результате. Чтобы избежать дублирования случайного целого числа в результате, используйте функцию random.sample().

random.sample()

В приведенном выше примере может быть вероятность того, что random.randint() сгенерирует повторяющееся случайное число из списка. Если вы хотите сгенерировать уникальные случайные числа из списка, используйте функцию random.sample().

Функция random.sample() генерирует уникальные элементы из набора, списка и других последовательностей. Функция Python random.sample() позволяет случайную выборку более чем одного элемента в пределах диапазона из списка без дублирования.

Пример random.sample() для генерации случайных элементов из списка без дубликатов:

В этом примере мы сгенерируем 10 случайных целых чисел в диапазоне от 0 до 100.

Если вы хотите создать список случайных чисел, каждое из которых должно быть кратным n, используйте параметр step функции range().

Например, создание 10 случайных целых чисел, кратных 5, из диапазона от 0 до 100 с использованием random.sample(range(0, 100, 5), 10).

List sort()

Функция Python sort() используется для сортировки случайных целых чисел списка в порядке возрастания (по умолчанию). Мы также можем отсортировать значение списка в порядке убывания, указав его порядок reverse = True. Значение по умолчанию для реверса — False.

Пример 1: sort() отсортирует элементы списка в порядке возрастания:

В этом примере мы сгенерируем случайный список из 5 чисел в диапазоне от 50 до 100 шириной 5 и отсортируем их с помощью функции sort().

Функции модуля Python random зависят от функции генератора псевдослучайных чисел random(), которая генерирует число с плавающей запятой между 0,0 и 1,0.

В модуле random используются различные типы функций, которые приведены ниже:

Эта функция генерирует случайное число с плавающей запятой от 0,0 до 1,0.

Возвращает случайное целое число между указанными целыми числами.

Эта функция возвращает случайно выбранный элемент из непустой последовательности.

Эта функция случайным образом меняет порядок элементов в списке.

Эта функция используется для генерации числа в диапазоне, указанном в ее аргументе. Она принимает три аргумента: начальное число, последнее число и шаг, который используется для пропуска числа в диапазоне. Рассмотрим следующий пример.

Используется для применения к конкретному случайному числу с аргументом начального числа. Возвращает значение сопоставителя. Рассмотрим следующий пример.

Иногда, при написании программ, необходимо сгенерировать какое-либо случайное число. Для реализации этого на языке программирования Python существует модуль Random.

Генерация случайного числа с помощью модуля Random

Чтобы воспользоваться функциями модуля Random, его необходимо сначала подключить командой import.

После этого можно воспользоваться необходимой вам функцией модуля Random.

Random.random

Функция возвращает случайное число в диапазоне 0 — 1.

Random.uniform

Функция возвращает случайное вещественное число в указанном диапазоне.

В скобках указывается диапазон чисел random.unifrom(начало, конец).

Random.randint

Функция возвращает случайное целое число из указанного диапазона.

В скобках указывается диапазон чисел random.randint(начало, конец)

Random.randrange

Функция возвращает случайное число из указанного диапазона с определенным шагом. То есть, если мы зададим диапазон 0 — 10 и шаг 5, то функция вернет 0, 5 или 10.

В скобках указывается диапазон чисел и шаг, с которым выбирается случайное число random.randrage(начало, конец, шаг)

Функция возвращает случайный элемент из любого списка, например если мы зададим список с 10 значениями, то функция вернет одно из 10 значений списка.

Читайте также: