Модуль random. Функции генерирования случайных чисел с плавающей запятой. Функции получения случайных чисел с использованием распределений
Содержание
- 1. Функция random.random(). Получить случайное число в диапазоне [0; 1]
- 2. Функция random.uniform(). Получить случайное число в заданном интервале
- 3. Функция random.triangular(). Получить случайное число в заданном интервале и заданном режиме
- 4. Функция random.betavariate(). Получить случайное число в пределах [0; 1] на основании бета-распределения
- 5. Функция random.expovariate(). Получить случайное число на основе экспоненциального распределения
- 6. Функция random.gammavariate(). Получить случайное число на основе Гамма-распределения
- 7. Функция random.gauss(). Получить случайное число на основе распределения Гаусса
- 8. Функция random.lognormvariate(). Получить случайное число на основе логарифмического нормального распределения
- 9. Функция random.normalvariate(). Получить случайное число на основе нормального распределения
- 10. Функция random.vonmisesvariate(). Круговое распределение данных
- 11. Функция random.paretovariate(). Получить случайное число на основе распределения Парето
- 12. Функция random.weibullvariate(). Получить случайное число на основе распределения Вейбулла
- Связанные темы
Поиск на других ресурсах:
1. Функция random.random(). Получить случайное число в диапазоне [0; 1]
Функция random.random() используется для получения случайного числа в диапазоне [0; 1].
Пример.
# Функция random.random() # подключить модуль random import random rnd_num = random.random() # rnd_num = 0.445307972457864
⇑
2. Функция random.uniform(). Получить случайное число в заданном интервале
Функция random.uniform() возвращает случайное число с плавающей запятой в заданном интервале. Общая форма функции следующая
random.uniform(a, b)
где a, b – значения задающие интервал, в пределах которого будет получено результирующее случайное число.
Значение конечной точки b определяется по формуле
a+(b-a)*random()
Поэтому принадлежность конечной точки b заданному диапазону зависит от округления этого значения для типа с плавающей запятой.
Относительно значений a, b возможны два случая:
- a<=b. В этом случае случайное число N получается таким, что удовлетворяет условию a<=N<=b;
- b<a. В этом случае получается случайное число N, которое удовлетворяет условию b<=N<=a.
Пример.
# Функция random.uniform() # подключить модуль random import random # Случай 1. a<=b # получить случайное число в пределах [1.5, 2.7] a = 1.5 # нижняя граница b = 2.7 # верхняя граница number = random.uniform(a, b) # number = 1.5904468975189021 # получить случайное число в пределах [2.8, 3.3] number = random.uniform(2.8, 3.3) # number = 2.8056183689090615 # Случай 2. a>b # получить случайное число в пределах [2.7, 1.5] a = 2.7 b = 1.5 number = random.uniform(2.7, 1.5) # number = 2.492950266273217 # Случай 3. Отрицательные числа a = -5.2 b = -3.8 number = random.uniform(b, a) # nbumber = -3.8546817374025304
⇑
3. Функция random.triangular(). Получить случайное число в заданном интервале и заданном режиме
Функция random.triangular() возвращает случайное число с плавающей запятой. Согласно документации Python общая форма функции следующая
random.triangular(low, high, mode)
где
- low – минимально-возможное значение результирующего случайного числа (нижняя граница). По умолчанию значение low равно нулю;
- high – максимально-возможное значение результирующего случайного числа (верхняя граница). По умолчанию значение high равно единице;
- mode – аргумент, задающий режим вывода числового значения. По умолчанию mode есть серединой между аргументами low и high.
Пример.
# Функция random.triangular # подключить модуль random import random l = 1.5 h = 2.2 number = random.triangular(l,h) # number = 1.8082365488322254 number = random.triangular(-3.5, -6.2, 1) # number = -4.23510440860435
⇑
4. Функция random.betavariate(). Получить случайное число в пределах [0; 1] на основании бета-распределения
Функция random.betavariate() возвращает случайное число в пределах [0; 1] на основании бета-распределения (beta distribution). Общая форма функции
random.betavariate(alpha, beta)
где
- alpha, beta – параметры, для которых выполняется условие alpha>0, beta>0. Возвращаемое значение находится в пределах 0 и 1. Если не соблюсти одно из условий alpha>0 или beta>0, то интерпретатор выдаст ошибку.
Пример.
# Функция random.betavariate # подключить модуль random import random alpha = 7 beta = 9.5 number = random.betavariate(alpha, beta) # number = 0.22875540655977067 alpha = 3.0 beta = 1.5 number = random.betavariate(alpha, beta) # number = 0.6977893966563389 alpha = 0.1 beta = 0.1 number = random.betavariate(alpha, beta) # number = 0.0008738538852347506
⇑
5. Функция random.expovariate(). Получить случайное число на основе экспоненциального распределения
Функция random.expovariate() возвращает случайное значение на основе экспоненциального распределения (exponential distribution). Согласно документации Python, общая форма функции следующая
random.expovariate(lambda)
где lambda – параметр, который равен результату деления 1.0 на желаемое среднее значение. Параметр lambda может быть ненулевым (lambda≠0). Не следует путать параметр lambda с одноименным зарезервированным словом языка Python.
Случайное значение, которое возвращает функция, может быть:
- от 0 до +∞, если выполняется условие lambda>0;
- от -∞ до 0, если lambda<0.
Пример.
# Функция random.expovariate(lambd) # подключить модуль random import random # Случай 1. lambd>0 lambd = 5 rnd_num = random.expovariate(lambd) # rnd_num = 0.6234234901590993 # Случай 2. lambd<0 lambd = -8.2 rnd_num = random.expovariate(lambd) # rnd_num = -0.41089244332230856
⇑
6. Функция random.gammavariate(). Получить случайное число на основе Гамма-распределения
Функция random.gammavariate() возвращает случайное число на основе Гамма-распределения. Общая форма объявления функции
random.gammavariate(alpha, beta)
где alpha, beta – параметры распределения для которых выполняются условия alpha>0, beta>0. Результирующая функция распределения вероятностей рассчитывается по формуле:
В вышеприведенной формуле используются две функции из библиотеки Python:
- функция math.exp(–x/beta) – вычисляет экспоненту;
- функция math.gamma(alpha) – вычисляет гамма-функцию.
Функцию random.gammavariate() не нужно путать с гамма-функцией.
Пример.
# Функция random.gammavariate(alpha,beta) # подключить модуль random import random alpha = 2.0 beta = 4.5 rnd_num = random.gammavariate(alpha, beta) # rnd_num = 5.046693970249287 alpha = 3.0 beta = 1.1 rnd_num = random.gammavariate(alpha, beta) # rnd_num = 5.797395009650084
⇑
7. Функция random.gauss(). Получить случайное число на основе распределения Гаусса
Функция random.gauss() возвращает случайное число на основе распределения Гаусса. Согласно документации Python общая форма функции следующая:
random.gauss(mu, sigma)
где
- mu – параметр, определяющий среднее значение;
- sigma – параметр, который определяет стандартное отклонение.
По сравнению с подобной функцией random.normalvariate() данная функция работает быстрее.
Пример.
# Функция random.gauss() # подключить модуль random import random # Диапазон [1-0.5; 1+0.5] mu = 1.0 sigma = 0.5 rnd_num = random.gauss(mu, sigma) # rnd_num = 1.0460662110757315 # Диапазон [250-0.3; 250+0.3] mu = 250 sigma = 0.3 rnd_num = random.gauss(mu, sigma) # rnd_num = 250.09858114288903
⇑
8. Функция random.lognormvariate(). Получить случайное число на основе логарифмического нормального распределения
Функция random.lognormvariate() возвращает случайное число на основе логарифмического нормального распределения. Общая форма функции
random.lognormvariate(mu, sigma)
где
- mu – среднее значение;
- sigma – стандартное отклонение. Значение sigma может быть больше нуля.
Если из полученного случайного числа взять натуральный логарифм, то будет получено нормальное распределение.
Пример.
# Функция random.lognormvariate() # подключить модуль random import random # подключить модуль math import math # Диапазон [3-0.5; 3+0.5] mu = 3.0 sigma = 0.5 rnd_num = random.lognormvariate(mu, sigma) number = math.log(rnd_num) # диапазон [3-0.5; 3+0.5] print("rnd_num = ", rnd_num) print("log(rnd_num) = ", number)
Результат работы программы
rnd_num = 13.614067024574224 log(rnd_num) = 2.6111035982231474
⇑
9. Функция random.normalvariate(). Получить случайное число на основе нормального распределения
Функция random.normalvariate() возвращает случайное число на основе нормального распределения. Общая форма функции
random.normalvariate(mu, sigma)
где
- mu – среднее значение;
- sigma – стандартное отклонение.
Пример.
# Функция random.normalvariate() # подключить модуль random import random mu = 10.0 sigma = 2.0 rnd_num = random.normalvariate(mu, sigma) # rnd_num = 11.529818975017623
⇑
10. Функция random.vonmisesvariate(). Круговое распределение данных
Функция random.vonmisesvariate() возвращает случайное число на основе кругового распределения данных. Общая форма объявления функции следующая
random.vonmisesvariate(mu, kappa)
где
- mu – средний угол, выраженный в радианах в границах [0; 2·π];
- kappa – параметр концентрации. Значение kappa должно удовлетворять условию kappa≥0. Если kappa=0, то функция возвращает случайный угол в пределах [0; 2·π].
Пример.
# Функция random.vonmisesvariate() # подключить модуль random import random mu = 10.0 kappa = 2.0 rnd_num = random.vonmisesvariate(mu, kappa) # rnd_num = 3.0806812333424087 mu = 1.0 # 1 радиан kappa = 0 rnd_num = random.vonmisesvariate(mu, kappa) # rnd_num = 0.10073252837746509
⇑
11. Функция random.paretovariate(). Получить случайное число на основе распределения Парето
Функция random.paretovariate() возвращает случайное число на основе распределения Парето. Общая форма функции следующая
random.paretovariate(alpha)
где alpha – параметр формы. Значение alpha должно быть ненулевым.
Пример.
# Функция random.paretovariate() # подключить модуль random import random alpha = 2.3 rnd_num = random.paretovariate(alpha) # rnd_num = 1.1150245760736535 alpha = -2.3 rnd_num = random.paretovariate(alpha) # rnd_num = 0.08129209858766535
⇑
12. Функция random.weibullvariate(). Получить случайное число на основе распределения Вейбулла
Функция random.weibullvariate() возвращает случайное число на основе распределения Вейбулла. Общая форма функции
random.weibullvariate(alpha, beta)
где
- alpha – параметр масштаба;
- beta – параметр формы.
Пример.
# Функция random.weibullvariate() # подключить модуль random import random alpha = 1.5 beta = 2.0 rnd_num = random.weibullvariate(alpha, beta) # rnd_num = 1.5819775812273797 alpha = 500 beta = 50 rnd_num = random.weibullvariate(alpha, beta) # rnd_num = 486.648957741605
⇑
Связанные темы
- Генерирование случайных чисел. Классы Random, SystemRandom. Функции счетоводства. Функции для целых чисел
- Функции для последовательностей
⇑