Библиотека для генерации псевдослучайных чисел на основе времени
Project description
PyCustomRand
[!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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e97a071593c835ef56bf88b4a06efa63a02e1b237a66b8c5c4a976ad25e6c87c
|
|
| MD5 |
365556b3ac7f82a040211fccabcfff26
|
|
| BLAKE2b-256 |
2f14e0ebf954e41b677b747a093b542bce60192c60020a3f5dbea6cf3efb5d7b
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3630a7ba274ef37d5b29fb82f3def127ad63c5ce4a031cf61739a21338a9e427
|
|
| MD5 |
b14f8eb34e80269609d82e0f3294dda3
|
|
| BLAKE2b-256 |
a3cabe4b53bea1838eb70a05ca87b0f41d371978cf06a663ee9127a24fed97ee
|