Skip to content

n1xsi/PyCustomRand

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PyCustomRand

Python

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.git

Пример использования

from 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