Riješeno: generator slučajnih brojeva

Posljednje ažuriranje: 09/13/2023

Iako Rust nije često prvi jezik koji vam pada na pamet kada razmišljate o generatorima slučajnih brojeva (RNG), on nudi efikasan i pouzdan način za njihovu implementaciju.

Rustova podrška za programiranje niskog nivoa, u kombinaciji sa fokusom na sigurnost i performanse, čini ga zanimljivim izborom za implementaciju RNG-ova. Ovo osigurava da će svaki program koji koristi RNG ispravno raditi, bez obzira na operativni sistem ili arhitekturu na kojoj radi.

Slučajan broj Generacija je ključna komponenta u mnogim tipovima softvera, od igara i simulacija do kriptografskih sistema. Sposobnost da se generišu istinski slučajni brojevi – to jest brojevi koji su potpuno nepredvidivi i neponovljivi – kritična je u svim ovim poljima.

Rješenje za generiranje slučajnih brojeva

Rust ne podržava generisanje slučajnih brojeva u svojoj standardnoj biblioteci, jer je minimalistički i bezbedan sistemski jezik. Umjesto toga, koristi biblioteke ili sanduke, npr Rand, koji se bave složenim zadacima, kao što je RNG. `rand` sanduk u Rustu je svestrano i sposobno rješenje za problem generiranja slučajnih brojeva.

U Rustu, generiranje slučajnog broja može biti jednostavno kao korištenje osobine `rand::Rng` i pozivanje njegovih metoda na vrijednosti kreiranoj pomoću `rand::thread_rng()`. `rand::thread_rng()` je ručka lokalnog generatora slučajnih brojeva.

koristite rand::Rng;

fn main() {
neka num = rand::thread_rng().gen_range(1..101);
println!(“Slučajni broj: {}”, broj);
}

Ovaj program će proizvesti nasumični cijeli broj između 1 i 100 uključujući.

Objašnjenje RNG koda u Rustu

Da biste generisali nasumične brojeve u Rustu, prvo morate uključiti sanduk `rand` kao zavisnost u vašu datoteku `Cargo.toml`.

[ovisnosti]
rand = “0.8”

Kada navedete `rand` kao zavisnost, možete koristiti osobinu `rand::Rng` u svom programu. Ovo se radi upotrebom deklaracije `use rand::Rng;` na početku koda. Svojstvo `Rng` definira metode koje implementiraju generatori slučajnih brojeva, a ova osobina mora biti u opsegu da bismo koristili te metode.

Funkcija `rand::thread_rng()` će vam dati kopiju lokalnog generatora slučajnih brojeva. Ovaj određeni RNG je dobar zadani izbor za mnoge scenarije. Brz je i ne zahtijeva nikakvo podešavanje osim početnog poziva funkcije.

Metoda `gen_range` se tada koristi za generiranje slučajnih brojeva između navedenih donjih i gornjih granica. Donja granica je inkluzivna, dok je gornja granica isključiva.

Ključne biblioteke i funkcije

  • rand::Rng: Ključna osobina koja definira metode koje koristimo za generiranje slučajnih brojeva.
  • rand::thread_rng(): Ova funkcija dohvaća generator slučajnih brojeva lokalno za nit u kojoj je pozvana.
  • gen_range(): Metoda implementirana pomoću osobine Rng, koja se koristi za dobivanje slučajnog broja unutar određenog raspona.

Rust pruža elegantno i efikasno rešenje za često težak problem generisanja slučajnih brojeva. Uz upotrebu sanduka kao što je `rand` i implementaciju ugrađenih metoda kao što su `rand::Rng` i `gen_range`, pisanje generatora slučajnih brojeva u Rustu je jednostavno i efikasno.

Slični postovi: