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

我的查询是关于使用numpy.random.uniformon生成统一随机数生成器的[0,1)

  1. 此实现是否涉及统一的step-size,即可能性的宇宙在{0,a,2a,...,Na}哪里(N+1)a = 1a是恒定的?

  2. 如果以上是正确的话,那么这有什么价值step-size?我注意到的价值numpy.nextafter(x,y)不断变化,取决于x。因此,我的问题关于统一是否step-size被用来实现numpy.random.uniform

  3. 如果step-size不一致,那么找出可能需要的唯一值数量的最佳方法是numpy.random.uniform(low=0, high=1)什么?

  4. 的重复周期是numpy.random.uniform多少?即在经过几个样本后,我将再次看到我的原始编号吗?为了获得最大效率,该值应等于唯一值的数量。


阿晨1998
浏览 230回答 1
1回答

子衿沉夜

相关功能是doublerk_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.01.1102230246251565e-16>>> 2**-531.1102230246251565e-16>>> 1-np.nextafter(1.0, 0)1.1102230246251565e-16
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python