random
Сгенерируйте случайные целые числа
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
random() random(n1 .. n2
) random(n
)
random()
возвращает случайное целое число между 0 и 1012.
random(n1..n2)
возвращает процедуру, которая генерирует случайные целые числа между n1
и n2
.
Вызовы random()
возвратите равномерно распределенные случайные целые числа между 0 и 999999999988 (приблизительно 1 012).
r := random(n1..n2)
производит генератор случайных чисел r
. Последующие вызовы r()
сгенерируйте равномерно распределенные случайные целые числа между n1
и n2
.
random(n)
эквивалентно random(0 .. n - 1)
.
Глобальная переменная SEED
используется в инициализации или изменении последовательности случайных чисел. Это может быть присвоено любое ненулевое целое число. Значение SEED
фиксирует последовательность случайных чисел. Это может использоваться, чтобы сбросить случайные генераторы и воспроизвести случайные последовательности.
SEED
установлен в значение по умолчанию, когда MuPAD® инициализируется. Таким образом каждый раз MuPAD запускается или повторно инициализируется с reset
функция, случайные генераторы производят ту же последовательность чисел.
Чтобы получить непредсказуемое начальное значение, сделайте его зависящим от текущего времени. Смотрите Пример 5.
Несколько случайных генераторов производятся random
может запуститься одновременно. Все генераторы используют ту же глобальную переменную SEED
.
Для создания равномерно распределенных чисел плавающих точек рекомендуется использовать более быстрый функциональный frandom
вместо этого. Библиотека статистики предоставляет случайным генераторам различные другие распределения. См. Пример 4.
random
а также генераторы случайных чисел, созданные им, чувствительны к переменной окружения SEED
.
random
и генераторы случайных чисел, созданные им, изменяют переменную окружения SEED
на каждом вызове.
Следующий вызов производит последовательность случайных целых чисел. Обратите внимание на то, что индексная переменная i
должен использоваться в конструкции последовательности. Вызов, такой как random() $8
произвел бы 8 копий того же случайного значения:
random() $ i = 1..8
Следующий вызов производит “умирание”, которое прокручивается 20 раз:
die := random(1..6): die() $ i = 1..20
Следующий вызов выпускает “монету”, которая производит “голову” или “хвост”:
coin := random(2): coin() $ i = 1..10
subs(%, [0 = head, 1 = tail])
delete dice, coin:
random
чувствительно к глобальной переменной SEED
который установлен и сброшен, когда MuPAD (пере-) инициализирован. Seed может также быть установлен пользователем. Случайные последовательности могут быть воспроизведены начиная с фиксированного SEED
:
SEED := 1: random() $ i = 1..4
SEED := 1: random() $ i = 1..4
random
позволяет вам создавать несколько генераторов случайных чисел для различных областей значений чисел и использовать их одновременно:
r1 := random(0..4): r2 := random(2..9): [r1(), r2()] $ i = 1..6
delete r1, r2:
random
может использоваться, чтобы создать случайный генератор для равномерно распределенных чисел с плавающей запятой. Следующий генератор производит такие числа между -1.0
и 1.0
:
r := float@random(-10^DIGITS..10^DIGITS)/10^DIGITS: r() $ i = 1..12;
Однако строго рекомендуется использовать намного более эффективные функции frandom
или stats::uniformRandom
вместо этого:
r := stats::uniformRandom(-1, 1, Seed = 10^10): r() $ i = 1..12
delete r:
Обычно, random
используется, чтобы сгенерировать экспериментальный вход или “случайные” примеры. В этих случаях воспроизводимость является хорошей вещью. Однако при случае “более случайная” последовательность желательна. Обычный способ получить случайный seed в программе состоит в том, чтобы использовать текущее системное время:
SEED := round(1e10*frandom(CurrentTime)())
1035804049
random(), random()
861209862222, 269921735546
|
Целые числа с n 1 <n 2 |
|
Положительное целое число |
random()
возвращает неотрицательное целое число. Вызовы random(n1..n2)
и random(n)
возвратите процедуру типа DOM_PROC
.
random
реализует линейный генератор конгруэтности. Последовательность псевдослучайных чисел сгенерирована путем вызова random()
много раз f (x), f (f (x)), …., где x является начальным значением SEED
и f является функцией, сопоставляющей x с a x ультрасовременный m с подходящими целочисленными константами a и m.