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, который производит универсальные целые числа.

Примечание

В отличие от random, frandom не реагирует на переменную окружения SEED.

Функциональный stats::uniformRandom позволяет производить равномерно распределенные числа с плавающей запятой на произвольных конечных интервалах. Библиотека статистики также предоставляет случайным генераторам различные другие дистрибутивы.

Взаимодействия среды

frandom и процедуры, возвращенные frandom, чувствительны к переменной окружения DIGITS, который определяет числовую рабочую точность.

frandom изменяет свое внутреннее состояние при генерации номера и таким образом произведет различный номер на следующем вызове.

Примеры

Пример 1

Следующий вызов производит последовательность псевдослучайных чисел. Обратите внимание на то, что индексная переменная i должна использоваться в конструкции последовательности. Вызов, такой как frandom() $8 произвел бы 8 копий того же случайного значения:

frandom() $ i = 1..8

Пример 2

frandom реагирует на DIGITS, производя числа, которые одинаково случайны в более поздних цифрах как в начинающихся единицах:

DIGITS := 200: frandom(), frandom()

delete DIGITS:

Пример 3

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:

Пример 4

Обычно, frandom используется, чтобы сгенерировать экспериментальный вход или “случайные” примеры. В этих случаях воспроизводимость является хорошей вещью. Однако при случае “более случайная” последовательность желательна. Обычный способ получить случайный seed в программе состоит в том, чтобы использовать текущее системное время, которое может быть сделано при помощи CurrentTime как значение seed:

r := frandom(CurrentTime):
r(), r(), r(), r()

Параметры

seed

Значение инициализации для генератора: целое число или опция CurrentTime

Возвращаемые значения

frandom() возвращает число с плавающей точкой; frandom(seed) возвращает процедуру (генератор псевдослучайного числа).

Алгоритмы

frandom использует линейный генератор конгруэтности, чтобы непосредственно управлять внутренним представлением DOM_FLOAT.

Смотрите также

Функции MuPAD