【发布时间】:2016-04-22 15:09:13
【问题描述】:
我想让int64 的随机数组均匀分布在int32 限制之外的某个范围内。
有randint 和random_integers 但它们与int32 一起使用;提供较大的上限会产生high is out of bounds for int32。
如何生成指定范围的随机int64 数组?
可能的解决方案:
- 使用浮动生成器。在这种情况下它的分辨率不会很差吗?
- 生成随机字节,将它们解释为
int64数组,然后通过lower + x % (upper - lower)标准化。但是int32代是否具有相同的规范化?不影响均匀度吗?
我是不是错过了一些更简洁方便的方式?
为什么随机方法只产生floats 和int32?
【问题讨论】:
-
如果您使用加密健全的 PRNG(例如
SystemRandom),那么您的选项 B 应该是安全的。 -
相关的,可能是重复的,但是旧的并且没有任何真正好的答案:stackoverflow.com/questions/1658808/…
-
我相信这个问题已经在最近的版本中得到修复。 github.com/numpy/numpy/pull/6910