Berkas Tajuk:
stdlib.h
Sintaksis:
int rand (kosong)
Nilai kembali:
Fungsi ini mengembalikan nomor pseudo-acak berikutnya dalam seri. Nilai rentang dari seri angka adalah antara 0 dan RAND_MAX. RAND_MAX adalah makro yang didefinisikan dalam stdlib.h file header, yang nilainya adalah nilai maksimum, yang dapat dikembalikan oleh fungsi Rand(). Nilai RAND_MAX lebih besar tetapi tidak kurang dari 32767 tergantung pada pustaka C.
//Contoh 1.c#termasuk
#termasuk
int utama()
di aku;
printf("10 Angka Acak =>\n");
untuk(i=0;i<10;i++)
printf("%d",rand());
printf("\n");
kembali 0;
Dalam Contoh1.c, kami memanggil fungsi Rand() di setiap iterasi for loop dan mencetak nilai kembalian dari fungsi tersebut. Urutan nilai fungsi rand() adalah sama setiap kali kita menjalankan program. Secara default, seed fungsi rand diatur ke 1.
Kita dapat mengatur seed untuk fungsi rand menggunakan srand() fungsi. Benih hanya dapat diatur sekali, dan sebelum pertama kali rand() panggilan fungsi.
srand() fungsi:
Berkas Tajuk:
stdlib.h
Sintaksis:
int srand (benih int yang tidak ditandatangani)
Argumen:
Fungsi ini membutuhkan 1 argumen
benih: Nilai integer yang digunakan sebagai benih untuk seri baru angka pseudo-acak.
Nilai kembali:
Tidak ada
//Contoh2.c#termasuk
#termasuk
#termasuk
int utama()
di aku;
srand(waktu(0));
printf("10 Angka Acak =>\n");
untuk(i=0;i<10;i++)
printf("%d",rand());
printf("\n");
kembali 0;
Dalam Contoh2.c, kita telah menggunakan fungsi srand() untuk mengatur seed awal dari urutan angka acak yang dihasilkan oleh fungsi Rand(). Setiap kali program dijalankan, urutan yang berbeda dihasilkan. Dalam fungsi srand(), time(0) (dideklarasikan dalam waktu.h file header) digunakan sebagai seed. Fungsi time(0) ini mengembalikan jumlah detik yang telah berlalu sejak zaman (00:00:00, 1 Januari 1970). Ini masih dapat menghasilkan urutan yang sama jika Anda menjalankan program dalam detik yang sama.
#termasuk
#termasuk
#termasuk
int utama()
di aku;
srand(waktu(0));
printf("10 Angka Acak antara 1 dan 10=>\n");
untuk(i=0;i<10;i++)
printf("%d",(Rand() %10) + 1);
printf("\n");
kembali 0;
Dalam Contoh3.c kita telah melihat bagaimana bilangan acak dapat dihasilkan antara 1 dan 10.
#termasuk
#termasuk
#termasuk
int utama()
int i,maks,min;
printf("Masukkan Nilai Min => ");
scanf("%d",&mnt);
printf("Masukkan Nilai Maks => ");
scanf("%d",&maks);
jika(min>maks)
printf("Nilai min lebih besar dari nilai maks\n");
kembali 0;
srand(waktu(0));
printf("10 Angka Acak antara %d dan %d=>\n",min,maks);
untuk(i=0;i<10;i++)
printf("%d",(Rand() % (maks - mnt +1)) + mnt);
printf("\n");
kembali 0;
Dalam Contoh4.c kami telah mengambil rentang dari pengguna dan menghasilkan angka acak dalam rentang ini. Rumusnya adalah: rand() % (maks - min +1)) + min
#termasuk
#termasuk
#termasuk
int utama()
di aku;
srand(waktu(0));
printf("10 Angka Acak diantara 0.0 dan 1.0=>\n");
untuk(i=0;i<10;i++)
printf("%f",((mengambang)rand() /RAND_MAX));
printf("\n");
kembali 0;
Dalam Contoh5.c, kita telah melihat bagaimana kita dapat menghasilkan angka acak antara float 0.0 dan 1.0 Rumusnya adalah: (mengambang)rand() /RAND_MAX)
#termasuk
#termasuk
#termasuk
int utama()
di aku;
mengambang maks, min;
printf("Masukkan Nilai Min => ");
scanf("%f",&mnt);
printf("Masukkan Nilai Maks => ");
scanf("%f",&maks);
jika(min>maks)
printf("Nilai min lebih besar dari nilai maks\n");
kembali 0;
srand(waktu(0));
printf("10 Angka Acak antara %f dan %f =>\n",min,maks);
untuk(i=0;i<10;i++)
printf("%f",min + ((float)rand() /(RAND_MAX/(maks - min))));
printf("\n");
kembali 0;
Dalam Contoh6.c, kami telah mengambil rentang dari pengguna dan menghasilkan angka acak dalam rentang ini (keduanya termasuk). Rumusnya adalah: min + ((float)rand() /(RAND_MAX/(max - min)))
Kesimpulan:
Pada artikel ini, kita telah mempelajari bagaimana bilangan acak dapat dihasilkan menggunakan rand() dan srand() fungsi. Tidak ada jaminan tentang kualitas angka acak yang dihasilkan oleh fungsi rand, tetapi cukup baik untuk penggunaan biasa.