Рандом в Питоне с примерами
В мире программирования существует огромное количество языков, которые постоянно совершенствуются и пополняются. Наиболее популярным среди них считают Рython. Его разнообразный функционал позволяет выполнять даже самые сложные задачи и справляться с немыслимыми заданиями. Кроме этого, он заставляет функционировать программу, определяющую выпадение случайных показателей.
И преимуществом можно назвать то, что есть возможность восстанавливать цепочку из значений, а также символов, которые нельзя будет предугадать. Чтобы выполнить поставленную задачу подобного рода, используют специальные хранилища данных, обладающие большим количеством устройств для управления генерацией.
В чем суть неизвестного значения?
Рython рандомное случайное число позиционирует как произвольную величину, возникшую при воздействии специальной программы автоматического направления ПК. Использование этого явления достаточно широко распространено в процессах программирования, где присутствует необходимость сотрудничества с неповторимыми значениями, которые сложно угадать.
Наиболее точный пример – слоты в индустрии азартного бизнеса, а также создание криптопаролей для защиты персональных данных и прочей конфиденциальной информации.
Особенность стандартных услуг программы заключается в том, что ей не под силу продуцировать истинно случайные значения. Последовательность основана на псевдо случайном определении. В ее основе находится некое число. При инициализировании последовательности с его участием несколько раз подряд, мы получим одни и те же значения. Для более объективной работы используют показатель часов системы.
Получить уникальную последовательность при повторном запуске программы также доступно, но при этом существенно увеличивается время на обработку запроса. Объяснить это можно тем, что на получение нового числа тратится большое количество времени.
Именно поэтому использование метода генерации уникальных показателей на основе системных часов и будет оптимальным вариантом.
Как реализовывается генерация случайных чисел в Питоне
Для того, чтобы система правильно и слажено работала, в этом языке программирования присутствует сразу несколько разных модулей. Именно их используют для генерации случайных величин. Чаще всего для достижения цели применяется текущее системное время, установленное на устройстве.
Каждое обращение к генератору с использованием данной переменной позволяет получать новые значения. Главным инструментом, необходимым для работы с псевдослучайными числами, считают многосоставную бибилиотеку random. Кроме этого в качестве дополнительных механизмов работы довольно часто выступают функции numpy.random и os.urandom.
Среди особенностей по их применению выделяют:
- Стандартный рандом в Питоне состоит из большого количества и разнообразия генерации разных целых и вещественных показателей, а также последовательностей с четко заданными параметрами;
- Чтобы заполнить промежуток большим количеством случайных величин, используют функцию numpy.random;
- Для формирования набора из случайных байтов, что чаще всего используется в криптографии, можно применить функцию os.urandom.
Программисты отмечают еще одну немаловажную особенность, состоящую из присутствия в модуле random специального класса SystemRandom. Процессы, происходящие внутри него, обращаются именно к функции os.urandom. Данный генератор оснащен тем же функционалом, но он уже больше подходит для криптографии.
Модуль random
Для того, чтобы полноценно использовать эту опцию в своей работе, необходимо ознакомится с главными ее составляющими. Они выступают некими методами, позволяющими выполнять определенные действия. Основная стандартная библиотека Рython состоит из таких компонентов со следующими параметрами:
- random () – может вернуть число в промежуток значений от 0 до 1;
- seed (a) – производит настройку генератора на новую последовательность а;
- randint (a,b) – возвращает значение в диапазон данных от а до b;
- randrange (a, b, c) – выполняет те же функции, что и предыдущая, только с шагом с;
- uniform (a, b) – производит возврат вещественного числа в диапазон от а до b;
- shuffle (a) – миксует значения, находящиеся в перечне а;
- choice (a) – восстанавливает обратно случайный элемент из перечня а;
- sample (a, b) – возвращает на исходную позицию последовательность длиной b из перечня а;
- getstate () – обновляет внутреннее состояние генератора;
- setstate (a) – производит восстановление внутреннего состояния генератора а;
- getrandbits (a) – восстанавливает а при выполнении случайного генерирования бит;
- triangular (a, b, c) – показывает изначальное значение числа от а до b с шагом с.
Если вам необходимо применить для задания инициализирующееся число псевдо случайной последовательности, то не обойтись без функции seed. После ее вызова без применения параметра, используется значение системного таймера. Эта опция доступна в конструкторе класса Random.
Более показательными будут примеры на основе вышеописанного материала. Для возможности воспользоваться генерацией случайных чисел в Рython 3, сперва вам потребуется выполнить импорт библиотеки random, внеся сперва ее в начало исполняемого файла при помощи ключевого слова import.
Вещественные числа
Модуль оснащен одноименной функцией random. Она более активно используется в Питоне, чем остальные. Эта функция позволяет произвести возврат числа в промежуток значений от 0 до 1. Вот пример трех основных переменных:
import random
a = random.random()
b = random.random()
print(a)
print(b)
0.547933286519
0.456436031781
Целые числа
Чтобы в программе появились случайные числа из четко заданного диапазона, применяется функция randit. Она обладает двумя аргументами: максимальным и минимальным значением. Она отображает значения, указанные ниже в генерации трех разных чисел от 0 до 9.
import random
a = random.randint(0, 9)
b = random.randint(0, 9)
print(a)
print(b)
4
7
Диапазон целых чисел
Использование в такой ситуации метода randage поможет сгенерировать целочисленные значения, благодаря сотрудничеству с тремя основными параметрами:
- минимальное значение;
- максимальное;
- длина шага.
При вызове функции с одним требованием, граница будет установлена на значении 0, а промежуток будет установлен на 1. Для двух аргументов длина шага уже высчитывается автоматически. Вот пример работы этой опции на основе трех разных наборов.
import random
a = random.randrange(10)
b = random.randrange(2, 10)
c = random.randrange(2, 10, 2)
print(a)
print(b)
print(c)
9
5
2
Диапазон вещественных чисел
Генерация вещественных чисел происходит при использовании функции под названием uniform. Она регулируется всего двумя параметрами: минимальным и максимальным значением. Пример создания демонстрации с переменными a, b и c.
import random
a = random.uniform(0, 10)
b = random.uniform(0, 10)
print(a)
print(b)
4.85687375091
3.66695202551
Использование в генераторах
Дополнительно возможностью применения этой опции можно в генерации псевдослучайных чисел. Именно это поможет создать последовательность. Вот пример того, как сделать генератор списка со случайными компонентами и длиной. Вызов функции randit производится дважды, для размера списка и каждого элемента.
import random
a = [random.randint(0, 9) for i in range(random.randint(0, 9))]
print(a)
[4, 1, 8, 6, 6, 9, 7]
Перемешивание
Применение метода shuffle помогает перемешивать компоненты уже присутствующего списка. Все элементы распределены в абсолютно случайном порядке. Вот вариант представления списка а с 10 значениями.
import random
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(a)
print(a)
[3, 9, 0, 7, 6, 2, 5, 1, 8, 4]
Случайный элемент списка
Использование функции choice дает возможность устранить случайный элемент из предлагаемого набора данных. В последующем примере значение b получает определенное целое число из перечня а.
import random
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
b = random.choice(a)
print(b)
7
Несколько элементов списка
Если есть необходимость устранить не одно значение, а сразу несколько, то можно применить функцию sample. Она дает вам возможность получить абсолютно новый список чисел, состоящий из случайных компонентов уже существующего перечня. Первым аргументом, который стоит указать, это исходная последовательность. На втором месте стоит вводить длину нового массива.
import random
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
a = random.sample(a, 5)
print(a)
[8, 0, 9, 4, 6]
Генерация букв
Стандартная библиотека Питона позволяет сгенерировать не только цифры, но и буквы. Следующий вариант предлагает ознакомиться с инициализацией трех различных переменных случайными символами латиницы. Чтобы выполнить эти действия необходимо импортировать модуль string, а после этого использовать список letter1s. Именно в него входят все буквы английского алфавита.
import random
import string
a = random.choice(string.letters)
b = random.choice(string.letters)
c = random.choice(string.letters)
print(a)
print(b)
print(c)
J
i
L
Рандом в Питоне позволяет произвести замену отображаемой буквы в разном регистре. Преобразование к общему виду происходит при помощи вызова стандартного строкового метода upper или lower.
SystemRandom
SystemRandom основана на os.urandom. Ей под силу выдавать псевдослучайные данные, которые полностью зависят от дополнительно от данных операционной системы. Полученные данные часто применяют в криптографии. Недостатком этой функции можно считать обрабатывание данных в несколько раз дольше.
import random
sr = random.SystemRandom()
a = sr.random()
b = sr.randint(0, 9)
c = sr.randrange(2, 10, 2)
print(a)
print(b)
print(c)
0.36012464614815465
2
8
В заключение можно сказать, что такой язык программирования как Python обладает массой встроенных методов для обработки случайных значений и их генерации. Использовать его можно с помощью различных библиотек, которые размещены в первоначальном наборе инструментов платформы. При помощи них можно задавать различные условия, а также вносить ограничение для своих генераторов.