PyCustomRand — это небольшая Python-библиотека для генерации псевдослучайных чисел, основанная на алгоритме, использующем системное время с наносекундной точностью. Проект также включает в себя кастомную реализацию математического округления.
Это авторский проект, созданный с целью изучения алгоритмов и альтернативных подходов к генерации случайных чисел.
Меня не устраивало то, что модуль random в Python генерирует недостаточно случайные числа (особенно при нескольких генерациях подряд), а модуль round довольно "грубо" округляет (настолько, что round(1.5) = 2 и в то же время round(2.5) = 2), поэтому я решил написать свой модуль для генерации псевдослучайных чисел.
Warning
Данная библиотека находится в стадии разработки
Также PyCustomRand не является криптографически стойкой библиотекой и не предназначена для использования в системах безопасности ❗
Все функции основаны на оригинальной Python-библиотеке:
- Генерация случайных целых чисел заданной длины.
- Генерация случайных чисел с плавающей точкой в диапазоне
[0, 1). - Выбор случайного элемента из списка.
- Перемешивание списка.
- Кастомная функция округления.
- и т. д.
На данный момент установка через pip не поддерживается. Чтобы использовать библиотеку, склонируйте репозиторий:
git clone https://github.com/n1xsi/PyCustomRand.gitfrom pycustomrand import PseudoRandom
# Генерация 8-значного случайного числа
random_number = PseudoRandom.get_random_number(8)
print(f"Случайное число: {random_number}")
# Генерация float в диапазоне [0, 1)
random_float = PseudoRandom.random()
print(f"Случайный float: {random_float}")
# Выбор случайного элемента из списка
my_list = ['яблоко', 'банан', 'вишня']
random_choice = PseudoRandom.choice(my_list)
print(f"Случайный выбор: {random_choice}")
# Перемешивание списка
PseudoRandom.shuffle(my_list)
print(f"Перемешанный список: {my_list}")- Рефакторинг кода и улучшение алгоритма.
- Добавление новых функций и распределений.
- Написание тестов.
- Публикация в PyPI.
- Доработка README.md
Приветствуется вклад в развитие проекта: любые поправки/импрувы.
Форк → Коммит → Pull Request