Python Academy
49.5K subscribers
1.08K photos
2 videos
374 links
Python Academy — один канал вместо тысячи учебников

Чат канала: @python_academy_chat

Сотрудничество: @zubar89

Канал включён в перечень РКН: https://rkn.link/TVu
加入频道
3 интересных функции в random

Этот пост более для тех, у кого есть соответствующий бэкграунд и кто хочет знать про random больше среднего.

betavariate() — используется для получения случайного числа с плавающей запятой от 0 до 1 на основе бета-распределения (применяется для статистических расчетов).

gauss() — генерирует случайное число с плавающей запятой на основе распределения Гаусса (используется в теории вероятности).

paretovariate() — возвращает случайное число с плавающей запятой на основе распределения Парето (используется в теории вероятности).

Кстати, можете посмотреть на графиках результаты вызова этих функций по 100к раз тут, тут и тут.

#random
Генерируем случайные числа

Небольшой пост для тех, кто только начинает свое обучение. Во встроенном модуле random есть функция randint, которая выдает случайные числа.

Диапазон получаемого числа задается с помощью двух аргументов: нижняя и верхняя границы в виде целых чисел.

#random
Генерация случайных значений с помощью модуля secrets

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

Интерфейс использования secrets довольно прост и схож с random. Его основные функции:

secrets.choice(collection) - возвращает случайно выбранный элемент из переданной коллекции.

secrets.randbelow(n) - возвращает случайный int в диапазоне [0, n).

secrets.randbits(n) - возвращает целое число int состоящее из n случайных бит.

secrets.token_bytes(n) - возвращает случайную байтовую строку, содержащую n байт.

token_hex(n) - возвращает случайную строку из n байт в шестнадцатеричной формате.

token_urlsafe(n) - возвращает URL-безопасную строку, содержащая n байт, закодированную в Base64.

Также в модуле есть класс SystemRandom, который поддерживает большинство функций определенных в random.

#secrets #random
Генерация шумов Перлина

Шум перлина — это математический алгоритм по генерированию процедурной текстуры (градиентного шума) псевдо-случайным методом.

Для нас он может пригодится в разных ситуациях: от симуляции временных рядов разных показателей до генерации процедурного мира как в Minecraft.

Для Python уже существует библиотека-реализация этого алгоритма, называется она perlin-noise.

pip install perlin-noise

Сначала мы создаем обьект генератора шумов, и задаем ему количество октав и seed для встроенного рандомизатора:
noise = PerlinNoise(octaves=10, seed=1)

Обьявляем размер желаемой 2d матрицы:
xpix, ypix = 100, 100

И используя списочное включение, генерируем 2d матрицу, где интенсивность значения от координат задает наш обьект генератора noise:
pic = [[noise([i/xpix, j/ypix]) for j in range(xpix)] for i in range(ypix)]

Пример картинки можно посмотреть в комментариях к этому посту.

#random #perlin
3 интересных функции в random

Этот пост более для тех, у кого есть соответствующий бэкграунд и кто хочет знать про random больше среднего.

betavariate() — используется для получения случайного числа с плавающей запятой от 0 до 1 на основе бета-распределения (применяется для статистических расчетов).

gauss() — генерирует случайное число с плавающей запятой на основе распределения Гаусса (используется в теории вероятности).

paretovariate() — возвращает случайное число с плавающей запятой на основе распределения Парето (используется в теории вероятности).

Кстати, можете посмотреть на графиках результаты вызова этих функций по 100к раз тут, тут и тут.

#random
Использование модуля secrets для генерации случайных значений

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

Применение модуля secrets просто и напоминает работу с модулем random. Вот некоторые из его функций:
- secrets.choice(collection) выбирает и возвращает случайный элемент из предоставленной коллекции.
- secrets.randbelow(n) генерирует случайное целое число в пределах от 0 до n.
- secrets.randbits(n) создает целое число из n случайных бит.
- secrets.token_bytes(n) выдает случайную последовательность байт длиной в n байт.
- token_hex(n) предоставляет случайную строку из n байт, преобразованную в шестнадцатеричный формат.
- token_urlsafe(n) генерирует URL-безопасную строку длиной в n байт, закодированную в Base64.

Также, в модуле присутствует класс SystemRandom, поддерживающий большинство методов модуля random.

#python #secrets #random