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.
