Untuk membuat angka random memang cukup mudah. Kita cukup memanggil fungsi rand() di c++ seperti pada contoh dibawah :
int main(){
cout<<rand();
return 0;
}
Kode diatas akan menghasilkan sebuah angka random yang tidak memiliki batas (dari 0 sampai seterusnya).
Jika kita ingin menampilkan beberapa angka random dengan batas tertentu dan tidak menginginkan ada angka 0 misalnya kalo kita ingin mengundi sebuah dadu kita bisa menggunakan kode ini
int main(){
for(int x=0;x<5;x++)
cout<<1+(rand()%6)<<” ”; //gunakan header #include <cstdlib> utk fungsi rand
return 0;
}
Maka outputnya kalo dikomputer saya seperti ini : 6 6 5 5 6
1+rand()%6 artinya komputer akan memberikan angka
random taruhlah 1234 kemudian dibagi 6 dan sisa pembagiannya ditampilkan yaitu
antara angka 0 – 5. Karena dadu tidak memiliki nilai 0 dan kita butuh angka 6, maka
setiap nilai sisa pembagian kita tambah satu sehingga jika muncul angka 0=1 dan
5=6.
Perlu diingat bahwa tiap komputer memiliki algoritma
yang berbeda
untuk membuat angka random. Dan kode
diatas akan menampilkan kumpulan angka random yang akan terus sama berapa kali
pun programnya dirun. jadi dikomputer saya akan terus : 6 6 5 5 6 .
Jika kita ingin angka randomnya mendapatkan angka
berbeda ketika kita gunakan fungsi random, kita bisa tambah dengan fungsi srand(bibit).
Nah dengan fungsi ini kita akan menaruh bibit yang
akan menentukan pengacakan angkanya. Dimana tiap bibit menghasilkan angka
random yang berbeda dan tidak akan berubah.
Jadi misal :
srand(3) = 2
3 1 2 4
srand (2) = 4 3 5 2 1 dst
nah kalo kita mau agar angkanya terus berubah kita cukup menaruh srand(time(0))
dimana tiap detik angka/bibitnya akan terus berubah sehingga angka acak
yang dihasilkan juga akan terus berubah. Contoh :
int main(){
srand(time(0)); // gunakan header #include <cstdlib> dan #include <ctime>
for(int x=0;x<5;x++)
cout<<1+(rand()%6)<<” ”;
return 0;
}
Makasih banget gan! Berguna nih buat tugas akhir. Sukses selalu gan
BalasHapusmakasih yak sama nih tentang srand() dan rand() bilangan random disini
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapusTerima kasih gan! Sangat membantu
BalasHapus