其他分享
首页 > 其他分享> > 两次Math.Random 取最大最小的含义

两次Math.Random 取最大最小的含义

作者:互联网

Math.max( random() , random() )

random(), 返回0-x范围的数,概率x

因为返回的是最大值,所以想让最终结果在0-x范围上,需要两次random都返回0-x范围的数字,有一次例外,最终结果就会不在0-x范围上,因为取max嘛。所以,套了max之后的过程,就把得到0-x范围的数字,概率调整到了x平方,也就是两次都得命中才行。

 

Math.min( random() , random() )

random(), 返回0-x范围的数,概率x

因为返回的是最小值,所以想让最终结果在0-x范围上,两次random中,有任何一次返回0-x范围的数字,最终结果就会在0-x范围上,因为取min嘛。只有两次都不在0-x范围上,最终结果才会得不到0-x范围上的数字。

random(),返回不在0-x范围的数,概率是1-x。

所以两次都不在,概率是(1-x)的平方。

所以有任何一次在,概率是:1-(1-x)的平方。

所以,套了min之后的过程,就把得到0-x范围的数字,概率调整到了,1-(1-x)的平方,也就是两次之中有一次命中就可以。

标签:返回,Random,含义,random,两次,概率,Math,范围
来源: https://www.cnblogs.com/gushiye/p/16290590.html