[0,1]
在 Cython中生成随机随机数的最有效和最便携的方法是什么?一种方法是使用INT_MAX
和rand()
来自 C 库:
from libc.stdlib cimport rand
cdef extern from "limits.h":
int INT_MAX
cdef float randnum = rand() / float(INT_MAX)
这样使用INT_MAX
可以吗?我注意到它与您从 Python 的 max int 获得的常量完全不同:
import sys
print INT_MAX
print sys.maxint
产量:
2147483647 (C max int)
9223372036854775807 (python max int)
哪个是正确的“标准化”数字rand()
? 另外编辑rand()
,如果使用从 libc调用的 C 方法,如何设置随机种子(例如根据当前时间播种) ?