Main Content

指定範囲内の乱数

この例では、開区間 (50, 100) の一様分布から得た浮動小数点数の乱数の配列を作成する方法を説明します。

既定では、関数 rand は一様分布から得られる (0 ~ 1 間の) 正規化された値を返します。分布の範囲を新しい範囲 (a, b) に変更するには、それぞれの値に新しい範囲の幅 (b – a) を乗算し、その積に a を加えます。

まず、乱数発生器を初期化してこの例の結果を再現可能にします。

rng(0,'twister');

1000 の乱数値からなるベクトルを作成します。関数 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 を含めることが理論上は可能です。実際には、これが起こる可能性は非常に低いものとなります。

参考

関連するトピック