Image

Как реализовать рандомизацию с помощью модуля Python Random

Давайте добавим случайность в результаты работы нашего кода.

Делиться

f6b07f560bf7748437a64d49317557b9

Введение в рандомизацию

В повседневной жизни мы сталкиваемся с различными совершенно случайными явлениями. Погода тоже случайна: конечно, мы можем её предсказывать и предсказывать, но лишь до определённой степени. Радиоактивный распад — тоже интересный случайный процесс, лишённый закономерностей и предсказуемости. В отличие от компьютеров, которые детерминированы и работают так, как запрограммированы, природе не требуется никакого программирования, условных операторов или циклов. Всё происходит совершенно случайным и непредсказуемым образом, и именно такая непредсказуемость иногда требуется нам в наших компьютерах и приложениях, например, в играх.

Нам нужны случайность и непредсказуемость в играх, в которые мы играем, чтобы нам не наскучили предопределённые сценарии и предсказуемые задачи. Нам также необходим элемент случайности при моделировании реальных ситуаций, тестировании алгоритмов или создании выборочных наборов данных.

13c418eb000045b2b68ee0cc61ed8d0d

В языках программирования рандомизация означает внесение непредсказуемости и изменчивости в выходные данные компьютера. Случайность генерируется в программе посредством случайных чисел.

Существует несколько методов генерации псевдослучайных чисел. В Python для генерации случайных чисел в модуле random используется вихрь Мерсенна. Несмотря на широкое применение в качестве генератора псевдослучайных чисел (ГПСЧ), вихрь Мерсенна обладает детерминированными свойствами, что делает его небезопасным для некоторых задач, требующих безопасности в первую очередь. В программировании генерация полностью случайных чисел довольно сложна, поэтому мы используем концепцию генерации псевдослучайных чисел, хотя они и воспроизводимы при задании начального значения, как будет показано далее.

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

Случайный модуль Python

Теперь давайте подробнее рассмотрим модуль случайных чисел. Во-первых, мы знаем, что случайность в этом модуле генерируется с помощью вихря Мерсенна, использующего простые числа Мерсенна. Этот встроенный модуль Python позволяет генерировать случайные числа в нашем коде различными способами и обеспечивает гибкость при работе с различными типами данных. Давайте разберёмся с его функциями на примерах. Официальную документацию по этому модулю можно получить по следующей ссылке:

случайный — генерация псевдослучайных чисел

Чтобы использовать модуль random, нам нужно сначала импортировать его в наш код:

импорт случайных данных

Случайное число с плавающей точкой от 0 до 1

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

случайное_значение = случайное.случайное() распечатать(случайное_значение)

Приведенный выше код сгенерирует случайное число с плавающей точкой в диапазоне от 0 до 1. Если вы запустите приведенный выше код несколько раз, каждый раз значение будет разным.

Случайное число с плавающей точкой в указанном диапазоне

Мы можем использовать функцию uniform() модуля random для генерации случайного числа в определенном диапазоне.

случайное_значение = случайное.равномерное(1,10) печать(случайное_значение)

При выполнении приведенного выше кода несколько раз будут выведены числа в диапазоне, указанном в скобках.

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

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

случайное_значение = случайное_значение.randint(1,6) print(случайное_значение)

Обратите внимание, что при запуске приведенного выше фрагмента кода числа 1 и 6 будут включены в сгенерированные случайные значения.

0fc2d7a8a3be6e6ae97dde6f4dbe3336

Случайное значение из списка значений

Далее мы рассмотрим, как сгенерировать случайное значение из списка значений. Для этого сначала нужно определить список элементов в Python, а затем использовать функцию choice() случайного значения для вывода случайного элемента из этого списка.

Для этого сначала создадим список, а затем воспользуемся функцией choice() модуля random, чтобы случайным образом выбрать один из объектов из списка. Предположим, у нас есть список наших кошек, и нам нужно выбрать одну, чтобы угостить её чем-то особенным. Вот как это можно сделать:

my_cats = [«Джерри», «Том», «Фигаро», «Белла», «Симба»] cat_chosen = random.choice(my_cats) print(cat_chosen)

Обратите внимание, что код выше является случайным, то есть не обязательно, что будут выбраны все кошки (хотя вероятность этого весьма высока, поскольку мы запускаем код), так что да, это несправедливый способ выбора того, кому дать особое угощение!

Более того, мы также можем создать список случайных вариантов с помощью функции choices(). Эта функция также позволяет нам определять вес каждого элемента списка, то есть мы можем увеличить вероятность случайного выбора любого элемента в списке:

mylist = [«яблоко», «банан», «вишня», «клубника»] print(random.choices(mylist, Weights = [2, 1, 1, 1,],], k = 8))

70412d3e8ab76502d4981d32ce2ec2e2

В приведенном выше коде мы передали mylist в качестве входной последовательности для функции choice(), а также веса каждого элемента списка и желаемую длину выходного списка со случайно выбранными элементами. Обратите внимание на количество встречающихся фруктов «яблоко» из-за увеличения его веса.

Случайное перемешивание списка элементов

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

колода = список(диапазон(1,53)) печать(колода) случайный.перетасовка(колода) печать(колода)

f9ac2d4f6eb690bc1d85474e66967c9a
d7fa9ef188dd755ba6bf1ccceb571d65

Случайная и уникальная выборка из списка

Предположим, мы хотим получить по 5 случайных карт для каждого из 4 игроков. Мы не можем использовать функцию choice(), поскольку нам нужны уникальные карты из колоды, без повторений. Для этого воспользуемся функцией sample():

колода = список(диапазон(1,53)) карты = случайная выборка(колода, 5) печать(карты)

0dcb790f855d3edf09b7e854f6e998a0

Случайное целое число из определенного диапазона с шагом

Функцию randrange() можно использовать для случайного выбора числа из определенного диапазона, в котором определены начальное и конечное значения, а также шаги.

случайное_число = случайное.randrange(0,10,2) печать(случайное_число)

Приведенный выше блок выдаст числа от 0 до 8, поскольку 10 не является включительным, а мы определили 2 как размер шага.

Начальная стоимость

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

случайное.seed(22) случайное_число = случайное.randrange(0,10,2) печать(случайное_число)

Приведённый выше код всегда будет генерировать случайное число «2», поскольку задано начальное значение «22». Если задать начальное значение «55», он будет снова и снова возвращать «0».

Применение случайного модуля

Хотя в модуле random больше функций и реализаций, перечисленные выше функции — одни из самых распространённых. Модуль random в Python можно использовать по-разному, в основном в играх и симуляциях реального мира. Мы можем использовать модуль random в играх, связанных с бросанием кубиков, как было рассмотрено выше, в игре с подбрасыванием монеты и даже в качестве генератора случайных паролей. С помощью модуля random можно также симулировать игру «Камень, ножницы, бумага» с помощью нескольких условных операторов и циклов!

a14996ab30f80975bbde9297fa1af3fd

Источник: towardsdatascience.com

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

ИИ почти всех обгонит? Прогнозы звучат громко, но есть нюансы…
Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.
dummy-img
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.
dummy-img
dummy-img
Взаимодействие человека и машины погружается под воду.
Взаимодействие человека и машины погружается под воду.
Image Not Found
Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.

Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.

Вкратце Опубликовано: Изображение предоставлено: Thos Robinson/Getty Images для The New York Times (откроется в новом окне) Джули Борт Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.…

Апр 21, 2026
dummy-img

Как почистить виниловые пластинки (2026): пылесос, ультразвук, чистящий раствор, щетка.

Эти щелчки и треск недопустимы. Приведите свою музыку в порядок с помощью этого удобного руководства. Источник: www.wired.com

Апр 21, 2026
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Это сегодняшний выпуск The Download, нашей ежедневной новостной рассылки, которая предоставляет вам ежедневную порцию событий в мире технологий. Кибермошенники обходят системы безопасности банков с помощью незаконных инструментов, продаваемых в Telegram. В центре по отмыванию денег в Камбодже…

Апр 21, 2026
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Это сегодняшний выпуск The Download, нашей ежедневной новостной рассылки, которая предоставляет вам ежедневную порцию событий в мире технологий. Кибермошенники обходят системы безопасности банков с помощью незаконных инструментов, продаваемых в Telegram. В центре по отмыванию денег в Камбодже…

Апр 21, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых