"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Consejos para generar números aleatorios verdaderos en el paquete RAND de idioma GO

Consejos para generar números aleatorios verdaderos en el paquete RAND de idioma GO

Publicado el 2025-04-14
Navegar:187

How to Generate Truly Random Numbers with Go's Rand Package?

Solución de problemas de la generación de números pseudo aleatorios en el paquete RAND

pregunta:

El paquete RAND en Go proporciona la función int31n para generar pseudo aleatorios, pero parece que el mismo resultado en el proceso repetido. ¿Hay alguna forma de obtener resultados verdaderamente aleatorios cada vez que se llame la función?

Respuesta:

El paquete rand emplea un generador de números pseudo aleatorio deterministas (prng). Cada vez que se ejecuta el programa, el PRNG genera la misma secuencia de números basado en un valor inicial fijo conocido como "semilla". Un enfoque común es usar la hora actual en nanosegundos, que cambia cada vez que se ejecuta el programa. Esto se puede hacer usando el siguiente código:

importar "tiempo" func Main () { Rand.Seed (Time.now (). Unixnano ()) fmt.println (rand.int31n (100)) }
import "time"

func main() {
    rand.Seed(time.Now().UnixNano())
    fmt.Println(rand.Int31n(100))
}

estableciendo una semilla única o utilizando el paquete Crypto/Rand, puede asegurarse de que la función Rand.int31n genere números verdaderamente aleatorios cada vez que se llama.

Último tutorial Más>

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