我想返回一个范围内的统一随机值。范围的大小和最小值是预先计算的。
我正在使用广岛大学团队分发的双精度 Mersenne Twister 的参考实现。我目前正在使用dsfmt_genrand_close_open()
具有以下描述的功能:
“生成并返回一个在 [0, 1) 范围内均匀分布的双精度伪随机数”
这是功能:
uint64_t gen_addr_in_range (uint64_t range, uint64_t low_addr) {
return (dsfmt_genrand_close_open(&dsfmt) * (range + 1)) + low_addr;
}
此函数的输出在给定范围内是否一致?