Maneira correta de gerar números aleatórios em Cython?
Qual é a maneira mais eficiente e portátil de gerar um aleatório aleatório em[0,1]
em Cython? Uma abordagem é usarINT_MAX
erand()
da biblioteca C:
from libc.stdlib cimport rand
cdef extern from "limits.h":
int INT_MAX
cdef float randnum = rand() / float(INT_MAX)
Está tudo bem em usarINT_MAX
nesse caminho? Eu percebi que é bem diferente da constante que você recebe do int max do Python:
import sys
print INT_MAX
print sys.maxint
rendimentos:
2147483647 (C max int)
9223372036854775807 (python max int)
Qual é o número de "normalização" correto pararand()
? EDITAR Além disso, como a semente aleatória pode ser definida (por exemplo, baseada na hora atual), se usarmos a abordagem C de chamarrand()
da libc?