¿Cómo generar números aleatorios en Rust Language?

La generación de números aleatorios es una característica importante en la programación para diseñar programas complejos y automatizados. Podemos generar números aleatorios en rust con la ayuda de la caja de rand.

Generar un número aleatorio:

Usaremos la caja de rand y el rasgo Rng en Rust que nos da acceso a ciertas funciones que nos ayudan a generar números aleatorios. Dentro de la función principal, podemos crear una variable rng mutable que asignaremos como un generador de números aleatorios que necesita el sistema (valor aleatorio a partir del cual el hilo asignará números). Utilizando el hilo rng, podemos generar un número aleatorio adecuado al límite de la variable asignada. 

Usando la función gen que devuelve el número dentro de los límites del tipo de variable en este jarrón u8, el número devuelto se obtiene mediante una distribución estándar. 

 

Incluso podemos generar números aleatorios más allá de los 8 bits, como u16, u32, u64, u128, o incluso números enteros con signo i8, i16, i32, i64 e i128. 

Genera números aleatorios dentro de un rango:

También podemos generar números aleatorios con un rango específico. Usamos la función gen_range para obtener un número aleatorio por distribución uniforme entre los dos límites pasados ​​como su parámetro. Para demostrar esto, ejecutamos un ciclo for e imprimimos el número generado a partir de la función gen_range en cada iteración. 

rng.gen_range(0..10)

El límite superior no es inclusivo, por lo que el número 10 no se generará a partir de la función. Sin embargo, podemos hacerlo inclusivo agregando el operador = antes del límite superior.

rng.gen_range(0..=10)

Ejemplo 1:

Rust

// RUST code: Generate Random Numbers within a Range
use rand::Rng;
  
fn main() {
    let mut rng = rand::thread_rng();
      
    for _x in 0..5{
    let num: u8 = rng.gen_range(0..10);
    println!("Random number between 0 and 9: {}", num);
    }
}

Producción:

 

 

Ejemplo 2:

Rust

// RUST Code: Using the inclusive range 
// for generating random numbers
use rand::Rng;
  
fn main() {
    let mut rng = rand::thread_rng();
      
    for _x in 0..5{
    let num: u8 = rng.gen_range(0..=10);
    println!("Random number : {}", num);
    }
}

Producción:

 

En este ejemplo, pudimos generar números aleatorios dentro de un rango dado, tanto en el límite superior inclusivo como en el no inclusivo.

Generar booleanos aleatorios:

Incluso podemos generar valores booleanos aleatorios con una distribución de especies de las probabilidades de verdadero y falso. Usando la función gen_bool y pasándole la distribución como una fracción, obtenemos un valor booleano de la función.

Ejemplo 3:

Rust

// RUST Code: Generating random boolean value
use rand::Rng;
  
fn main() {
    let mut rng = rand::thread_rng();
      
    for _x in 0..5{
    let toss: bool = rng.gen_bool(0.5);
    println!("Random number : {}", toss);
    }
}

Producción:

 

Como hemos dado un parámetro de 0.5, generará los valores booleanos de manera uniforme, si damos la distribución como 1, solo imprimirá verdadero ya que la probabilidad de falso u otro evento se convierte en 0. 

Por lo tanto, pudimos generar números aleatorios en Rust usando los métodos rand create con gen, gen_range y gen_bool para generar números en diferentes distribuciones. 

Publicación traducida automáticamente

Artículo escrito por meetgor y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *