
Модуль random предоставляет функции для генерации псевдослучайных чисел, выбора случайных элементов из последовательности, перемешивания последовательностей и других операций, связанных со случайностью.
При этом важно понимать, что генерация чисел в этом модуле является псевдослучайной, то есть они не являются истинно случайными. Они генерируются алгоритмически, и при заданных начальных условиях (начальном значении, или seed) последовательность чисел будет повторяться.
На самом деле, модуль random является частью стандартной библиотеки Python, так что вам не нужно устанавливать его отдельно.
Чтобы начать работать с модулем, вы просто импортируете его:
import randomПосле этого все функции и методы модуля становятся доступными для использования в вашем коде.
random() - возвращает следующее случайное вещественное число в диапазоне от 0.0 до 1.0 (не включая 1).print(random.random())randint(a, b) - генерирует случайное целое число в диапазоне от a до b включительно.print(random.randint(1, 10))randrange(start, stop, step) - возвращает случайное целое число в диапазоне от start до stop (не включая stop) с заданным шагом step.print(random.randrange(10)) # число от 0 до 9
print(random.randrange(5, 50, 5)) # число из [5, 10, 15, ... 45]uniform(a, b) - возвращает случайное вещественное число между a и b.print(random.uniform(1.5, 2.5))Рассмотрим основные функции модуля, которые позволяют манипулировать и выбирать случайные элементы из последовательностей.
choice(seq) - эта функция возвращает случайный элемент из предоставленной последовательности.fruits = ["яблоко", "банан", "черешня", "дыня"]
print(random.choice(fruits))choices(population, weights=None, *, cum_weights=None, k=1) - возвращает список из k элементов, выбранных случайным образом из population. Параметр weights указывает вероятности выбора каждого элемента из population..fruits = ["яблоко", "банан", "черешня", "дыня"]
print(random.choices(fruits, k=2))
print(random.choices(fruits, weights=[10, 1, 1, 1], k=2))shuffle(seq) - перемешивает элементы последовательности на месте. Обратите внимание, что эта функция возвращает None и изменяет исходный список.numbers = [1, 2, 3, 4, 5]
random.shuffle(numbers)
print(numbers)sample(population, k) - возвращает список длиной k из уникальных элементов, случайно выбранных из population.numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(random.sample(numbers, 5))Модуль random в Python не только предоставляет базовые функции для генерации случайных чисел, но также содержит функции для генерации чисел, следующих определенным статистическим распределениям. Эти функции могут быть особенно полезными для статистиков, ученых и разработчиков, работающих в области моделирования и анализа данных.
gauss(mu, sigma) - генерирует случайное число, следующее нормальному (гауссовому) распределению с математическим ожиданием mu и стандартным отклонением sigma.print(random.gauss(0, 1)) # Нормальное распределение со средним 0 и стандартным отклонением 1betavariate(alpha, beta) - генерирует случайное число, следующее бета-распределению с параметрами alpha и beta.print(random.betavariate(2, 5))expovariate(lambd) - генерирует случайное число, следующее экспоненциальному распределению, где lambd равен 1 деленное на математическое ожидание.print(random.expovariate(1/5)) # Математическое ожидание равно 5gammavariate(alpha, beta) - генерирует случайное число, следующее гамма-распределению с параметрами alpha и beta.print(random.gammavariate(1, 1))paretovariate(alpha) - генерирует случайное число, следующее распределению Парето.print(random.paretovariate(5))weibullvariate(alpha, beta) - генерирует случайное число, следующее распределению Вейбулла.print(random.weibullvariate(1, 1))Модуль random Python генерирует псевдослучайные числа, а не истинные случайные числа. Псевдослучайные числа генерируются алгоритмически и будут повторяться в идентичной последовательности при заданном начальном значении (seed). Сейчас мы рассмотрим, что такое "seeding" и как это работает в контексте модуля random.
"Seed" или начальное значение — это число (или вектор чисел), который инициализирует генератор псевдослучайных чисел. Если генератор случайных чисел инициализирован одним и тем же начальным значением, он будет возвращать одну и ту же последовательность чисел.
Использование начального значения полезно в различных ситуациях, таких как:
Модуль random предоставляет функцию seed(), которая позволяет устанавливать начальное значение.
import random
random.seed(10)
print(random.random()) # 0.5714025946899135
random.seed(10)
print(random.random()) # 0.5714025946899135Обратите внимание, что при двух последовательных вызовах функции random.random() после установки одного и того же начального значения результаты были идентичными.
Если seed() вызывается без аргумента или с None в качестве аргумента, он будет использовать текущее время для инициализации генератора, что делает поведение случайным.
Модуль random в Python предоставляет обширный набор инструментов для работы с псевдослучайными числами. От базовой генерации случайных чисел и манипуляций с последовательностями до продвинутых статистических распределений — этот модуль предлагает функции для многих сценариев использования.
Содержание: