【发布时间】:2017-11-20 17:57:48
【问题描述】:
例如,考虑以下伪代码:
round(random(0.3, 1.9))
通过四舍五入到最接近的整数并随机生成介于 0.3 和 1.9 之间的统一浮点数,一百万个样本的平均值约为 1.125,而不是 1.1 的幼稚平均值。
如何在不实际生成几千个数字的情况下通过算法推导出该数字?
希望这不是一个微不足道的问题,但我似乎无法找到一个简单的解决方案。
【问题讨论】:
-
random(0.3, 1.9)是否返回 0.3 到 1.9 之间的随机浮点数?回合是如何工作的?它是在 0.5 处取整还是基本上是floor函数? -
如果
random是统一的并且round是下一个整数,那么平均值应该在(0.2*0+1.0*1+0.4*2)/1.6=1.8/1.6= 1.125。 -
@PatrickGünther 是的,它会生成一个介于 0.3 和 1.9 之间的随机浮点数,并且 round 只是四舍五入到最接近的整数。
-
@LutzL 四舍五入到最接近的整数。抱歉没有具体说明,我以为很清楚。
-
那么请添加更多关于您如何达到平均水平的详细信息
0.84611?您使用了多少个样本?
标签: math random language-agnostic