Metadata-Version: 2.4
Name: pycustomrand
Version: 0.0.1
Summary: Библиотека для генерации псевдослучайных чисел на основе времени
Author-email: Ivan <vanyalebedev45@gmail.com>
Project-URL: Homepage, https://github.com/n1xsi/PyCustomRand
Project-URL: Bug Tracker, https://github.com/n1xsi/PyCustomRand/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# PyCustomRand

[![Python](https://img.shields.io/badge/Made%20with-Python-blue.svg)](https://www.python.org/)
[![Last Commit](https://img.shields.io/github/last-commit/n1xsi/pycustomrand.svg)](https://github.com/n1xsi/pycustomrand/commits/main)

> [!WARNING]
> *Библиотека находится на стадии разработки*.
> 
> Также PyCustomRand **не является** криптографически стойкой библиотекой и **не предназначена** для использования в системах безопасности ❗

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

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

## Основные возможности
Все функции PyCustomRand основаны на [оригинальной](https://docs.python.org/3/library/random.html) Python-библиотеке:
*   Генерация случайных целых чисел заданной длины;
*   Генерация случайных чисел с плавающей точкой в диапазоне `[0, 1)`;
*   Выбор случайного элемента из списка;
*   Перемешивание списка;
*   А также: округление кастомной функцией `true_round`.

и т.д.

## Установка
*Пока что* установка через `pip` не поддерживается. Чтобы использовать библиотеку, **склонируйте** репозиторий:

```bash
git clone https://github.com/n1xsi/PyCustomRand.git
```

## Пример использования
```python
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**
