Dipecahkan: generator nomor acak

Pembaharuan Terakhir: 09/13/2023

Meskipun Rust sering kali bukan bahasa pertama yang terlintas dalam pikiran ketika memikirkan Random Number Generator (RNG), Rust menawarkan cara yang efisien dan andal untuk mengimplementasikannya.

Dukungan Rust terhadap pemrograman tingkat rendah, dikombinasikan dengan fokusnya pada keselamatan dan kinerja, menjadikannya pilihan yang menarik untuk mengimplementasikan RNG. Hal ini memastikan bahwa program apa pun yang menggunakan RNG akan bekerja dengan benar, apa pun sistem operasi atau arsitektur yang dijalankannya.

Angka acak generasi adalah komponen kunci dalam banyak jenis perangkat lunak, mulai dari permainan dan simulasi hingga sistem kriptografi. Kemampuan untuk menghasilkan angka yang benar-benar acak – yaitu angka yang benar-benar tidak dapat diprediksi dan tidak dapat diulang – sangat penting dalam semua bidang ini.

Solusi Karat untuk Pembuatan Angka Acak

Rust tidak mendukung pembuatan angka acak di perpustakaan standarnya, karena ini adalah bahasa sistem yang minimalis dan aman. Sebaliknya, ia menggunakan perpustakaan atau peti, misalnya baris, yang menangani tugas kompleks, seperti RNG. Peti `rand` di Rust adalah solusi serbaguna dan mampu untuk masalah pembuatan bilangan acak.

Di Rust, membuat nomor acak bisa dilakukan dengan mudah, cukup menggunakan sifat `rand::Rng` dan memanggil metodenya berdasarkan nilai yang dibuat dengan `rand::thread_rng()`. `rand::thread_rng()` adalah pegangan untuk pembuat nomor acak lokal-thread.

gunakan Rand::Rng;

fn utama() {
biarkan num = rand::thread_rng().gen_range(1..101);
println!("Bilangan acak: {}", bilangan);
}

Program ini akan menampilkan bilangan bulat acak antara 1 dan 100 inklusif.

Menjelaskan Kode RNG di Rust

Untuk menghasilkan angka acak di Rust, pertama-tama Anda harus menyertakan peti `rand` sebagai dependensi dalam file `Cargo.toml` Anda.

[dependensi]
acak = “0.8”

Setelah Anda menentukan `rand` sebagai dependensi, Anda dapat menggunakan sifat `rand::Rng` dalam program Anda. Hal ini dilakukan dengan menggunakan deklarasi `use rand::Rng;` di awal kode. Sifat `Rng` mendefinisikan metode yang diterapkan oleh pembuat angka acak, dan sifat ini harus berada dalam cakupan agar kita dapat menggunakan metode tersebut.

Fungsi `rand::thread_rng()` akan memberi Anda salinan pembuat nomor acak lokal-thread. RNG khusus ini adalah pilihan default yang bagus untuk banyak skenario. Ini cepat, dan tidak memerlukan pengaturan apa pun selain pemanggilan fungsi awal.

Metode `gen_range` kemudian digunakan untuk menghasilkan angka acak antara batas bawah dan atas yang ditentukan. Batas bawah bersifat inklusif, sedangkan batas atas bersifat eksklusif.

Pustaka dan Fungsi utama

  • acak::Rng: Ciri utama yang menentukan metode yang kami gunakan untuk menghasilkan angka acak.
  • acak::thread_rng(): Fungsi ini mengambil generator nomor acak lokal ke thread yang dipanggil.
  • gen_rentang(): Metode yang diterapkan dengan sifat Rng, digunakan untuk mendapatkan nomor acak dalam rentang tertentu.

Rust memberikan solusi yang elegan dan efektif untuk masalah pembuatan angka acak yang seringkali rumit. Dengan penggunaan crate seperti `rand` dan implementasi metode bawaan seperti `rand::Rng` dan `gen_range`, menulis generator angka acak di Rust sangatlah mudah dan efisien.

Pos terkait: