usos sistema programacion origen operativo lenguaje caracteristicas apple objective-c iphone random numbers

sistema - Generación de números aleatorios en Objective C para iPhone SDK



swift versions (2)

Estaba usando la función arc4random () para generar un grupo aleatorio y una secuencia de números, pero me dijeron que esto era excesivo y que debería usar la función random () en su lugar. Sin embargo, la función random () me da el mismo grupo y secuencia de números cada vez.

Llamo a srand (tiempo (0)) una vez cuando mi aplicación se inicia por primera vez para sembrar la función random (). ¿Alguna vez necesita resembrar la función random ()?

¿Me estoy perdiendo de algo?

Gracias.


En primer lugar, ¿quién te dijo que arc4random era excesivo? Lo uso en mis proyectos, y (a) cumple con mis requisitos, (b) no absorbe recursos (al menos cualquiera visible para el usuario o obvio para mí), y (c) fue trivial de implementar, por lo que realmente no veo cómo un uso similar en tu propio código podría llamarse "exceso".

En segundo lugar, srand() siembra la función rand() , no al random() , por lo que puede ser su problema. Y no, no debería tener que resembrar el generador en ningún momento durante la ejecución de su programa, una vez durante el inicio es suficiente.


No, no necesitas resembrar el generador de números aleatorios. Hay cierta uniformidad adicional ganada al generar una cierta cantidad de números y descartarlos, pero a menos que esté buscando la generación de números aleatorios de nivel de seguridad, no hay necesidad. Para la mayoría de los propósitos, un generador de números aleatorios apropiadamente sembrado es lo suficientemente uniforme.