You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+122-4Lines changed: 122 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -95,7 +95,7 @@ pip install pycustomrand
95
95
96
96
97
97
## 📚 Документация
98
-
Ниже представлено описание всех доступных функций библиотеки. Для удобства они могут импороваться напрямую из пакета (`from pycustomrand import FUNC_NAME`).
98
+
Ниже представлено описание всех доступных функций библиотеки с примерами. Для удобства они могут импороваться напрямую из пакета (`from pycustomrand import FUNC_NAME`).
99
99
100
100
### 1. Управление состоянием (Seeding)
101
101
Инициализация генератора позволяет получать воспроизводимые последовательности (например, для тестов или сохранения генерации мира).
@@ -107,6 +107,24 @@ pip install pycustomrand
107
107
*`_get_next_seed_state(current_seed)`
108
108
Внутренняя функция для обновления состояния сида (LCG алгоритм).
109
109
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
+
110
128
### 2. Целые числа
111
129
*`gen_random_number(length=1)`
112
130
Генерирует число заданной длины `length`, склеивая случайные цифры.
@@ -118,6 +136,27 @@ pip install pycustomrand
118
136
Возвращает случайное целое число `N`, такое что `start <= N <= end` (**обе границы включены**).
119
137
*`step`: Шаг генерации. Например, `step=2` вернет только чётные (или нечётные) числа. Необязательный аргумент.
120
138
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
+
121
160
### 3. Вещественные числа
122
161
*`random()`
123
162
Возвращает случайное число `float` в диапазоне `[0.0, 1.0)`.
@@ -127,6 +166,20 @@ pip install pycustomrand
127
166
*`start`, `end`: Начало и конец диапазона, могут быть как целыми числами, так и числами с плавающей точкой.
128
167
*`digits`: Если число указано, результат будет округлён до этого количества знаков с помощью `true_round`.
129
168
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
+
130
183
### 4. Последовательности
131
184
*`choice(array)`
132
185
Возвращает один случайный элемент из последовательности.
@@ -142,6 +195,30 @@ pip install pycustomrand
142
195
Возвращает список из `k`**уникальных** случайных элементов.
143
196
*`counts`: Список с количеством повторений для каждого элемента массива (соответствует по индексу).
144
197
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
+
145
222
### 5. Вероятностные распределения
146
223
Эти функции используются для моделирования реальных процессов (физика, экономика, игры).
147
224
@@ -164,15 +241,56 @@ pip install pycustomrand
164
241
Количество успехов в серии из `n` независимых испытаний с вероятностью успеха `p`.
165
242
Используется в моделировании финансов и математике. *Примеры*: Сколько раз сейчас выпадет орёл, если подбросить монету 10 раз — `binomialvariate(n=10, p=0.5)`.
166
243
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"
0 commit comments