[学习]如何在excel里发生一个在正负0.04区间内的随机数
=RAND()*0.08-0.04
=(RAND()-0.5)/50*4
假设数在A1,则 =$A$1+(RAND()-RAND())*0.6 往下拉 ,就会求
出A1在 0.6?0.6范围的随即数 。
rand()*m+n
m表示随机数的范围.比如0到100的,m=100 1楼的m=0.08
n表示随机数的下限,可以是负数.
1楼的n=-0.04
根据需要还可以嵌套四舍五入的函数.
区间是否包含正负0.04,
我给出的公式为闭区间.包含正负0.04
如果不包含,该怎么做?
这样做等于是
rand() * 4/50 - 0.5*4 /50 = rand()*0.08 - 0.04
没啥不同啊, 还更复杂了
[ 本帖最后由 灰袍法师 于 2009-3-3 17:17 编辑 ]
这个做法是错误的, 这等于说 rand()-rand() 可以生成均匀的 -1到1的随机数
假设我要得到 >0.5 的概率, 显然此概率应该是 25%
rand() - rand() 的概率是
第一个rand() 必须在0.5到1, 即0.75加减0.25 之间, 且 第二个rand() 必须在0到0.5, 即0.25加减0.25 的范围, 这个概率也有 25% 但是
第一个rand()取 0.75减0.25的时候, 第二个rand()只能取 0.25减0.25 第一个rand()取 0.75加0.25的时候, 第二个rand()只能取 0.25加0.25
所以 rand()-rand() 大于0.5的概率只有12.5%
不信可以用随机试验验证.
实际上, 大家最好牢牢记住, 生成 某一范围的随机数的正确方法, 就是
rand() * ( 上限 - 下限 ) + 下限 (上限,下限可以是任意实数, 上限大于下限)
不要别出心裁了, 很容易犯错还看不出来的.