Случайные числа в определенной области значений

Этот пример показывает, как создать массив случайных чисел с плавающей запятой, которые чертятся от равномерного распределения в открытом интервале (50, 100).

По умолчанию rand возвращает нормализованные значения (между 0 и 1), которые чертятся от равномерного распределения. Изменить область значений распределения к новой области значений, (a, b), умножают каждое значение на ширину новой области значений, (ba) и затем переключают каждое значение a.

Во-первых, инициализируйте генератор случайных чисел, чтобы сделать результаты в этом примере повторяемыми.

rng(0,'twister');

Создайте вектор 1 000 случайных значений. Используйте функцию rand, чтобы чертить значения от равномерного распределения в открытом интервале, (50,100).

a = 50;
b = 100;
r = (b-a).*rand(1000,1) + a;

Проверьте, что значения в r в заданной области значений.

r_range = [min(r) max(r)]
r_range =

   50.0261   99.9746

Результат находится в открытом интервале, (50,100).

Примечание

Некоторые комбинации a и b делают теоретически возможным для ваших результатов включать a или b. На практике это крайне маловероятно произойдет.

Была ли эта тема полезной?