C MoreLesson 50Preview gratis
C Random Numbers
Lesson ini bagian dari C · Semua level
Ringkasan
Fungsi rand() menghasilkan bilangan acak semu antara 0 dan RAND_MAX, sedangkan srand() menyetel benih (seed) generator agar urutannya berbeda tiap kali program dijalankan. Tanpa pemanggilan srand yang tepat, hasil acak akan selalu sama setiap kali program dijalankan. Untuk rentang tertentu digunakan modulus, misalnya rand() % 6 + 1 untuk dadu 1 sampai 6, meski cara ini sedikit bias.
Poin kunci
- Panggil srand((unsigned) time(NULL)) tepat sekali di awal program, bukan di dalam loop.
- rand() mengembalikan bilangan bulat tidak negatif antara 0 sampai RAND_MAX.
- rand() % n menghasilkan 0 sampai n-1, lalu tambahkan offset untuk rentang lain.
- Modulus menyebabkan bias ringan bila RAND_MAX+1 bukan kelipatan n.
- Untuk keperluan kriptografi, rand() tidak aman dan harus diganti generator khusus.
Materi lengkap
Contoh kode dan kuis
Materi lengkap, contoh kode, dan kuis tersedia untuk pelanggan. 5 soal.