2010-05-08 7 views

Respuesta

9

Se sabe que random es predecible y, por lo tanto, no se puede usar para la generación segura de números pseudoaleatorios. arc4random es un generador de números pseudoaleatorio más nuevo y menos predecible. Si no lo está utilizando para nada seguro, random funcionará bien.

+4

'random' es también significativamente más rápido que' arc4random', por lo que alguna vez lo usarías. –

+2

@Colin Cislason: ¿Cuánto más rápido? ¿Hay alguna diferencia si no estás creando miles de números aleatorios? – Emil

+0

@Emil Puede que no tenga tanto efecto. No he realizado ninguna prueba yo mismo. Vea el siguiente enlace para una prueba, pero esto se compara con 'rand' y usa muchas iteraciones: http://www.indieappsalliance.org/forum/viewtopic.php?f=10&t=13 –

0

Dependiendo de su sistema, al azar() puede o no ser el viejo, confiable y predecible UNIX aleatorio(). En los sistemas FreeBSD modernos y los sistemas Linux 2.6 que tienen el dispositivo/dev/random, la implementación predeterminada de random() se lee desde/dev/random hasta que se agota. Es probable que produzca números aleatorios algo mejores que cualquier generador de secuencia numérica, dependiendo de las fuentes de aleatoriedad que hayas mezclado en/dev/random.

Es altamente recomendable consultar la documentación (páginas man, etc) para el sistema en el que está implementando el programa.

+0

¿De verdad? -1? Realmente * debería * ir a leer las páginas del hombre effing antes de presionar esa flecha hacia abajo. – Wexxor

+3

No puedo hablar por el voto del usuario, pero la pregunta está etiquetada como 'iphone'. Una respuesta que comience con "Dependiendo de su sistema" y mencionar Linux podría no ser una respuesta adecuada. – user371320

Cuestiones relacionadas