作业帮 > 综合 > 作业

matlab中,如何生成三个随机数,使他们平均值为a,如45.123m,极差为0.01m?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 06:30:09
matlab中,如何生成三个随机数,使他们平均值为a,如45.123m,极差为0.01m?
极差为三个数中最大值与最大值之差,如45 46 49,极差为49-45=4,我需要精确到毫米的公式,如45.123m.鄙人不甚感激!
把生成的随机数做一下变换即可:
>> r = rand(1,3);
>> x = 45.123+(r-mean(r))*0.01/(max(r)-min(r))
x =
   45.1275   45.1240   45.1175
>> mean(x)
ans =
   45.1230
>> max(x)-min(x)
ans =
    0.0100
随机数可以是任意分布的,但不能所有的数都完全相同(那样肯定没办法满足极差的要求).
再问: 您好!首先谢谢您的回答!假设极差控制在0.01m以内,也就是0-0.01m之间,该如何变换?谢谢!
再答: 如果极差不要求等于固定值,就不用除 (max(r)-min(r)) 了:>> r = rand(1,3); 
>> x = 45.123+(r-mean(r))*0.01
x =
   45.1265   45.1194   45.1231
>> mean(x)
ans =
   45.1230
>> max(x)-min(x)
ans =
    0.0072
再问: 这样也可以吧?

再答: 不明白为什么要搞这么复杂?
39.818这个数的依据是什么?
生成的数应该不满足你的要求吧?