frandom
Сгенерируйте случайные числа с плавающей запятой
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
frandom()
frandom(seed
)
frandom()
возвращает псевдослучайное число с плавающей точкой в интервал.
frandom(seed)
возвращает генератор псевдослучайных чисел с плавающей запятой от интервала.
Вызовы frandom()
производят равномерно распределенные числа с плавающей запятой из интервала.
r := frandom(seed)
производит генератор случайных чисел r
. Последующие вызовы r()
возвращают равномерно распределенные числа с плавающей запятой в интервал.
Различные генераторы, созданные с тем же целочисленным seed, генерируют те же последовательности чисел. Смотрите Пример 3 и Пример 4.
Генераторы, созданные с CurrentTime
, используют время (в миллисекундах) при их создании как их значения seed. Генераторы, созданные друг вскоре после друга, могут таким образом возвратить те же числа.
Генераторы, созданные в отдельных вызовах frandom
, не влияют друг на друга.
Что касается всех функций, возвращающих числа с плавающей точкой, frandom
реагирует на DIGITS
и возвращает числа с точностью, установленной этой переменной.
Каждый раз, когда MuPAD® запускается или повторно инициализируется с функцией reset
, случайные генераторы, не используя CurrentTime
производят ту же последовательность чисел.
frandom
является рекомендуемой функцией для генерации универсальных случайных чисел с плавающей запятой. Это намного быстрее, чем функциональный random
, который производит универсальные целые числа.
Функциональный stats::uniformRandom
позволяет производить равномерно распределенные числа с плавающей запятой на произвольных конечных интервалах. Библиотека статистики также предоставляет случайным генераторам различные другие дистрибутивы.
frandom
и процедуры, возвращенные frandom
, чувствительны к переменной окружения DIGITS
, который определяет числовую рабочую точность.
frandom
изменяет свое внутреннее состояние при генерации номера и таким образом произведет различный номер на следующем вызове.
Следующий вызов производит последовательность псевдослучайных чисел. Обратите внимание на то, что индексная переменная i
должна использоваться в конструкции последовательности. Вызов, такой как frandom() $8
произвел бы 8 копий того же случайного значения:
frandom() $ i = 1..8
frandom
реагирует на DIGITS
, производя числа, которые одинаково случайны в более поздних цифрах как в начинающихся единицах:
DIGITS := 200: frandom(), frandom()
delete DIGITS:
frandom(seed)
, для некоторого целочисленного значения seed
, возвращает генератор чисел с плавающей запятой. Для различных генераторов, созданных с тем же seed, последовательности чисел будут идентичны (кроме цифр, отключенных при создании чисел при более низких настройках DIGITS
):
r1 := frandom(42): r2 := frandom(42): r3 := frandom(42): r1() $ i=1..4; r2() $ i=1..4; DIGITS := 20: r3() $ i=1..4;
delete r1, r2, r3, DIGITS:
Обычно, frandom
используется, чтобы сгенерировать экспериментальный вход или “случайные” примеры. В этих случаях воспроизводимость является хорошей вещью. Однако при случае “более случайная” последовательность желательна. Обычный способ получить случайный seed в программе состоит в том, чтобы использовать текущее системное время, которое может быть сделано при помощи CurrentTime
как значение seed
:
r := frandom(CurrentTime):
r(), r(), r(), r()
|
Значение инициализации для генератора: целое число или опция |
frandom()
возвращает число с плавающей точкой; frandom(seed)
возвращает процедуру (генератор псевдослучайного числа).
frandom
использует линейный генератор конгруэтности, чтобы непосредственно управлять внутренним представлением DOM_FLOAT
.