Skip to main content

Библиотека для генерации псевдослучайных чисел на основе времени

Project description

PyCustomRand

Python Last Commit

[!WARNING] Библиотека находится на стадии разработки.

Также PyCustomRand не является криптографически стойкой библиотекой и не предназначена для использования в системах безопасности ❗

PyCustomRand — это небольшая Python-библиотека для генерации псевдослучайных чисел, основанная на алгоритме, использующем системное время с наносекундной точностью (time-based). Проект также включает в себя кастомную реализацию математического (а не банковского) округления.

Это авторский проект создан для изучения алгоритмов и альтернативных подходов к генерации случайных чисел. Меня не устраивало, что модуль random в Python генерирует недостаточно случайные числа ( особенно при нескольких последовательных генерациях ), а встроенный в Python модуль round довольно "грубо" округляет числа ( round(1.5) = 2 и в то же время round(2.5) = 2 ), поэтому я решил написать свою библиотеку для генерации псевдослучайных чисел — более простую и с наибольшей энтропией.

Основные возможности

Все функции PyCustomRand основаны на оригинальной Python-библиотеке:

  • Генерация случайных целых чисел заданной длины;
  • Генерация случайных чисел с плавающей точкой в диапазоне [0, 1);
  • Выбор случайного элемента из списка;
  • Перемешивание списка;
  • А также: округление кастомной функцией true_round.

и т.д.

Установка

Пока что установка через 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.

Контрибуция

🤝 Приветствуется вклад в развитие проекта: любые поправки/импрувы.

Форк → Коммит → Pull Request

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pycustomrand-0.0.1.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pycustomrand-0.0.1-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file pycustomrand-0.0.1.tar.gz.

File metadata

  • Download URL: pycustomrand-0.0.1.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.5

File hashes

Hashes for pycustomrand-0.0.1.tar.gz
Algorithm Hash digest
SHA256 e97a071593c835ef56bf88b4a06efa63a02e1b237a66b8c5c4a976ad25e6c87c
MD5 365556b3ac7f82a040211fccabcfff26
BLAKE2b-256 2f14e0ebf954e41b677b747a093b542bce60192c60020a3f5dbea6cf3efb5d7b

See more details on using hashes here.

File details

Details for the file pycustomrand-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: pycustomrand-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.5

File hashes

Hashes for pycustomrand-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3630a7ba274ef37d5b29fb82f3def127ad63c5ce4a031cf61739a21338a9e427
MD5 b14f8eb34e80269609d82e0f3294dda3
BLAKE2b-256 a3cabe4b53bea1838eb70a05ca87b0f41d371978cf06a663ee9127a24fed97ee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page