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 = 1×2

   50.0261   99.9746

结果是处于开区间(50、100)内。

请注意,ab 的某些组合在理论上可使得到的结果包括 ab。在实际中,这种情况极难出现。

另请参阅

相关主题