Правильный способ генерации случайных чисел в Cython?

Какой самый эффективный и портативный способ генерировать случайное случайное число в[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()? РЕДАКТИРОВАТЬ кроме того, как можно установить случайное начальное число (например, посеянное на основе текущего времени), если кто-либо использует подход вызова на языке Crand() из libc?

Ответы на вопрос(3)

Ваш ответ на вопрос