¿Cuál es la diferencia entre arc4random y random?¿Cuál es la diferencia entre arc4random y random?
Respuesta
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.
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.
¿De verdad? -1? Realmente * debería * ir a leer las páginas del hombre effing antes de presionar esa flecha hacia abajo. – Wexxor
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
- 1. C: la verdad definitiva sobre rand, random y arc4random
- 2. ¿Cuál es la diferencia entre {0} y ""?
- 3. Cuál es la diferencia entre = y: =
- 4. ¿Cuál es la diferencia entre .ToString (+) y ""
- 5. Cuál es la diferencia entre $ (...) y `...`
- 6. ¿cuál es la diferencia entre:.! y: r !?
- 7. ¿Cuál es la diferencia entre ".equals" y "=="?
- 8. ¿Cuál es la diferencia entre dict() y {}?
- 9. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 10. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 11. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 12. ¿Cuál es la diferencia entre + = y = +?
- 13. ¿Cuál es la diferencia entre " " y ""?
- 14. Cuál es la diferencia entre $ y jQuery
- 15. ¿Cuál es la diferencia entre Ctrl-C y SIGINT?
- 16. OpenGL (ES) - ¿Cuál es la diferencia entre frustum y orto?
- 17. Cuál es la diferencia entre la función() {}() y la función() {}()
- 18. ¿Cuál es la diferencia entre la abstracción y la encapsulación?
- 19. ¿Cuál es la diferencia entre @ y $ y% en MSBuild?
- 20. ¿Cuál es la diferencia entre la vinculación estática y dinámica?
- 21. ¿Cuál es la diferencia entre la sección .got y .got.plt?
- 22. ¿Cuál es la diferencia entre el colado y la coerción?
- 23. ¿cuál es la diferencia entre el complemento y la biblioteca?
- 24. ¿Cuál es la diferencia entre el casting y la conversión?
- 25. ¿Cuál es la diferencia entre WPF y la aplicación Silverlight?
- 26. ¿Cuál es la diferencia entre uno mismo y la ventana?
- 27. ¿Cuál es la diferencia entre CookieContainer y la colección Response.Cookies?
- 28. ¿Cuál es la diferencia entre la relación Composición y Asociación?
- 29. ¿cuál es la diferencia entre el material y la textura?
- 30. ¿Cuál es la diferencia entre el marco y la arquitectura?
'random' es también significativamente más rápido que' arc4random', por lo que alguna vez lo usarías. –
@Colin Cislason: ¿Cuánto más rápido? ¿Hay alguna diferencia si no estás creando miles de números aleatorios? – Emil
@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 –