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?

questionAnswers(3)

yourAnswerToTheQuestion