Skip to content

Commit aec8ef9

Browse files
authored
docs: a small refactor of the Documentation + adding hints to sections 1-6 of the Documentation
1 parent fd21987 commit aec8ef9

File tree

1 file changed

+122
-4
lines changed

1 file changed

+122
-4
lines changed

README.md

Lines changed: 122 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ pip install pycustomrand
9595

9696

9797
## 📚 Документация
98-
Ниже представлено описание всех доступных функций библиотеки. Для удобства они могут импороваться напрямую из пакета (`from pycustomrand import FUNC_NAME`).
98+
Ниже представлено описание всех доступных функций библиотеки с примерами. Для удобства они могут импороваться напрямую из пакета (`from pycustomrand import FUNC_NAME`).
9999

100100
### 1. Управление состоянием (Seeding)
101101
Инициализация генератора позволяет получать воспроизводимые последовательности (например, для тестов или сохранения генерации мира).
@@ -107,6 +107,24 @@ pip install pycustomrand
107107
* `_get_next_seed_state(current_seed)`
108108
Внутренняя функция для обновления состояния сида (LCG алгоритм).
109109

110+
<details>
111+
<summary>🧩 Примеры 1</summary>
112+
113+
```python
114+
from pycustomrand import set_seed, random
115+
116+
print(random()) # Случайное число, например, 0.3730190220377659
117+
118+
set_seed("test") # Установление сида для тестов
119+
print(random()) # Первый результат функции после установления сида "test" ВСЕГДА будет 0.1647608190844912
120+
print(random()) # Второй результат функции тоже ВСЕГДА будет 0.943716375817365 (применилась функция _get_next_seed_state(current_seed="test"))
121+
122+
set_seed() # Обнуление сида
123+
print(random()) # Случайное число, например, 0.2458062256227575
124+
```
125+
126+
</details>
127+
110128
### 2. Целые числа
111129
* `gen_random_number(length=1)`
112130
Генерирует число заданной длины `length`, склеивая случайные цифры.
@@ -118,6 +136,27 @@ pip install pycustomrand
118136
Возвращает случайное целое число `N`, такое что `start <= N <= end` (**обе границы включены**).
119137
* `step`: Шаг генерации. Например, `step=2` вернет только чётные (или нечётные) числа. Необязательный аргумент.
120138

139+
<details>
140+
<summary>🧩 Примеры 2</summary>
141+
142+
```python
143+
from pycustomrand import gen_random_number, randrange, random_integer
144+
145+
print(gen_random_number(5)) # Случайное число длиной 5, например: 92103
146+
147+
print(randrange(10)) # Случайное число из диапазона [0, 10)
148+
print(randrange(1, 10)) # Случайное число из диапазона [1, 10)
149+
print(randrange(0, 10, 2)) # Случайное чётное число из диапазона [0, 10)
150+
151+
print(random_integer(1, 10)) # Случайное целое число из диапазона [1, 10]
152+
print(random_integer(0, 10, 2)) # Случайное чётное целое число из диапазона [0, 10]
153+
154+
# randint - алиас для random_integer, работает при "import pycustomrand", "from pycustomrand import *" или "from pycustomrand import randint"
155+
# randint(1, 10) равноценно random_integer(1, 10)
156+
```
157+
158+
</details>
159+
121160
### 3. Вещественные числа
122161
* `random()`
123162
Возвращает случайное число `float` в диапазоне `[0.0, 1.0)`.
@@ -127,6 +166,20 @@ pip install pycustomrand
127166
* `start`, `end`: Начало и конец диапазона, могут быть как целыми числами, так и числами с плавающей точкой.
128167
* `digits`: Если число указано, результат будет округлён до этого количества знаков с помощью `true_round`.
129168

169+
<details>
170+
<summary>🧩 Примеры 3</summary>
171+
172+
```python
173+
from pycustomrand import random, random_float
174+
175+
print(random()) # Случайное число в диапазоне [0, 1), например 0.2260351121787103
176+
177+
print(random_float(0, 10)) # Случайное число с плавающей точкой в диапазоне [0, 10), например 4.014874483651235
178+
print(random_float(0, 10, digits=3)) # То же самое, только с округлением до 3-ёх знаков, например 6.722
179+
```
180+
181+
</details>
182+
130183
### 4. Последовательности
131184
* `choice(array)`
132185
Возвращает один случайный элемент из последовательности.
@@ -142,6 +195,30 @@ pip install pycustomrand
142195
Возвращает список из `k` **уникальных** случайных элементов.
143196
* `counts`: Список с количеством повторений для каждого элемента массива (соответствует по индексу).
144197

198+
<details>
199+
<summary>🧩 Примеры 4</summary>
200+
201+
```python
202+
from pycustomrand import choice, choices, shuffle, sample
203+
204+
array = ["apple", "banana", "cherry", "orange"]
205+
206+
print(choice(array)) # Случайный элемент из массива, например "cherry"
207+
208+
print(choices(array, k=2)) # Список из k случайных элементов из массива, например ['apple', 'cherry']
209+
print(choices(array, k=2, weights=[1, 2, 3, 4])) # Список из k случайных элементов из массива с весами, например ['orange', 'banana']
210+
# "orange" (с весом 4) будет выпдать в четыре раза чаще, чем "apple" (с весом 1)
211+
212+
shuffle(array) # Перемешивает массив на месте
213+
print(array) # Например ['cherry', 'banana', 'apple', 'orange']
214+
215+
print(sample(array, k=2)) # Список из k уникальных случайных элементов из массива, например ['cherry', 'apple']
216+
print(sample(array, k=2, counts=[1, 2, 3, 4])) # Список из k уникальных случайных элементов из массива с весами, например ['banana', 'orange']
217+
# "orange" (с количеством в массиве 4) будет выпдать в четыре раза больше, чем "apple" (количество в массиве 1)
218+
```
219+
220+
</details>
221+
145222
### 5. Вероятностные распределения
146223
Эти функции используются для моделирования реальных процессов (физика, экономика, игры).
147224

@@ -164,15 +241,56 @@ pip install pycustomrand
164241
Количество успехов в серии из `n` независимых испытаний с вероятностью успеха `p`.
165242
Используется в моделировании финансов и математике. *Примеры*: Сколько раз сейчас выпадет орёл, если подбросить монету 10 раз — `binomialvariate(n=10, p=0.5)`.
166243

244+
<details>
245+
<summary>🧩 Примеры 5</summary>
246+
247+
```python
248+
from pycustomrand import triangular, gauss, expovariate, binomialvariate
249+
250+
print(triangular(low=0.0, high=1.0, mode=0.5)) # Случайное число с плавающей точкой из треугольного распределения (диапазон [0.0, 1.0])
251+
# Чаще всего выпадает значение ±0.5, например: 0.6508330793068139
252+
253+
print(gauss(mu=0.0, sigma=1.0)) # Случайное число с плавающей точкой из нормального "колокольного" распределения (общий диапазон 0.0 ± ~3.0)
254+
# Чаще всего выпадает значение 0.0 ± 1.0, например: 1.0665809173007805 или -1.650128903962443
255+
256+
print(expovariate(lambd=1.0)) # Случайное число с плавающей точкой из экспоненциального распределения (общий диапазон 0.0 ± ~4.0)
257+
# Чаще всего выпадает наименьшее значение от 0.0 до 1.0, например: 0.405175514533143
258+
259+
print(binomialvariate(n=10, p=0.5)) # Случайное число из биномиального распределения (диапазон [0, 10]), например: 5
260+
# Чем меньше вероятность p - тем чаще будет выпадать число из первой половины диапазона [0, 10], больше - большее из второй половины
261+
262+
# binomial - алиас для binomialvariate, работает при "import pycustomrand", "from pycustomrand import *" или "from pycustomrand import binomial"
263+
# binomial(n=10, p=0.5)) равноценно binomialvariate(n=10, p=0.5)
264+
```
265+
266+
</details>
267+
167268
### 6. Утилиты (Extras)
168-
* `random_uuid4()`: Генерация уникального идентификатора (UUID v4), например, `f47ac10b-58cc-4372-a567-0e02b2c3d479`.
269+
* `random_bytes(count)`: Генерация случайных байт в количестве `count`.
169270

170-
* `random_color_hex()`: Случайный цвет в формате HEX, например, #a1f4e0.
271+
* `random_uuid4()`: Генерация уникального идентификатора (UUID v4).
171272

172-
* `random_bytes(count)`: Генерация count случайных байт, например, `random_bytes(10)` выдаст `b'\x8ag\x16p\xddK|\x11(\x83'`.
273+
* `random_color_hex()`: Случайный цвет в формате HEX.
173274

174275
* `random_bool(true_chance=0.5)`: Возвращает True или False c вероятностью `true_chance`.
175276

277+
<details>
278+
<summary>🧩 Примеры 6</summary>
279+
280+
```python
281+
from pycustomrand import random_bytes, random_uuid4, random_color_hex, random_bool
282+
283+
print(random_bytes(10)) # Случайные 10 байтов, например: b'\x8b\x91\x19\xe42\xcd\x80\x82b\xba'
284+
285+
print(random_uuid4()) # Случайный UUID v4, например: '0e1d2eeb-1627-4cfa-8130-afe74e1c5ce9'
286+
287+
print(random_color_hex()) # Cлучайный цвет в формате hex, например: '#0ca3e7'
288+
289+
print(random_bool()) # Случайное значение True/False, например: True
290+
```
291+
292+
</details>
293+
176294
### 🎯 О модуле `true_round`
177295
Модуль решает проблему "банковского округления" в Python 3, где `round(x.5)` округляется до ближайшего чётного числа.
178296
`true_round` использует **честное математическое округление** (отсюда и название "true" — истинное/честное).

0 commit comments

Comments
 (0)