为了账号安全,请及时绑定邮箱和手机立即绑定

numpy统一的离散化大小和重复周期

numpy统一的离散化大小和重复周期

阿晨1998 2021-04-01 14:11:46
我的查询是关于使用numpy.random.uniformon生成统一随机数生成器的[0,1)。此实现是否涉及统一的step-size,即可能性的宇宙在{0,a,2a,...,Na}哪里(N+1)a = 1且a是恒定的?如果以上是正确的话,那么这有什么价值step-size?我注意到的价值numpy.nextafter(x,y)不断变化,取决于x。因此,我的问题关于统一是否step-size被用来实现numpy.random.uniform。如果step-size不一致,那么找出可能需要的唯一值数量的最佳方法是numpy.random.uniform(low=0, high=1)什么?的重复周期是numpy.random.uniform多少?即在经过几个样本后,我将再次看到我的原始编号吗?为了获得最大效率,该值应等于唯一值的数量。
查看完整描述

1 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

相关功能是


double

rk_double(rk_state *state)

{

    /* shifts : 67108864 = 0x4000000, 9007199254740992 = 0x20000000000000 */

    long a = rk_random(state) >> 5, b = rk_random(state) >> 6;

    return (a * 67108864.0 + b) / 9007199254740992.0;

}

可以在numpy源代码树内的randomkit.c中找到。如您所见,粒度1 / 9007199254740992.0等于2 ^ -53,即(向下)float64分辨率为1。


>>> 1 / 9007199254740992.0

1.1102230246251565e-16

>>> 2**-53

1.1102230246251565e-16

>>> 1-np.nextafter(1.0, 0)

1.1102230246251565e-16


查看完整回答
反对 回复 2021-04-13
  • 1 回答
  • 0 关注
  • 229 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号