rand () % 14 Generator Devuelve valores limitados
en un programa reciente, un desarrollador encontró un problema donde la expresión rand () % 14 produjo valores producidos consistentemente de solo 6 o 13. A pesar de intentar ejecutar los códigos múltiples, los resultados permanecieron consistentes. El problema radica en la naturaleza del generador de números aleatorios utilizado por el MCG de Apple.
Como lo explica Wikipedia, el multiplicador de MCG de 16807 es divisible por 7. Esto significa que el primer número aleatorio generado después de srand () tendrá solo un bit de entropía cuando se toma el modulo 14, lo que resulta en el rango limitado de valores. Esta deficiencia se atribuye al generador de números aleatorios de baja calidad utilizado por Apple.
Una solución simple a este problema es invocar rand () varias veces después de srand () y descartar los resultados iniciales. Esto mejorará la entropía de los números generados y resolverá el problema de la salida de valor limitado.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3