【发布时间】:2013-08-10 11:53:49
【问题描述】:
我正在尝试生成一系列高精度的双随机数。例如,0.856365621(小数点后有 9 位)。
我从网上找到了一些方法,但是它们确实生成了双随机数,但精度没有我要求的那么好(小数点后只有6位)。
那么,我可以知道如何实现我的目标吗?
【问题讨论】:
-
您能否演示您尝试过的方法,以便我们知道您尝试了什么。
-
您确定您不只是打印具有默认 6 位精度的数字吗?
-
您需要 52 个随机位来实现全双精度,因此您需要一个至少那么大的 PRNG,否则您必须多次调用较小的 PRNG 才能获得 at至少 52 位,那么您可以直接进行除法或将位移动到双精度值中。
-
“生成随机双打”通常充满问题。 0.25 和 0.5 之间的双精度数与 0.5 和 1.0 之间的双精度数一样多。得到结果
x的机会是否应该取决于x的值?如果不是,则结果介于 0.25 和 0.5 之间的机会将等于结果介于 0.5 和 1 之间的机会。