两次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