Fail Tajuk:
stdlib.h
Sintaks:
int rand (tidak sah)
Nilai pulangan:
Fungsi ini mengembalikan nombor pseudo-random seterusnya dalam siri ini. Nilai julat bagi siri nombor adalah antara 0 dan RAND_MAX. RAND_MAX adalah makro yang ditentukan dalam stdlib.h fail tajuk, yang nilainya adalah nilai maksimum, yang dapat kembali dengan fungsi rand (). Nilai RAND_MAX lebih besar tetapi tidak kurang dari 32767 bergantung pada perpustakaan C.
// Contoh1.c#sertakan
#sertakan
int utama ()
int i;
printf ("10 Nombor Rawak => \ n");
untuk (i = 0; i<10;i++)
printf ("% d", rand ());
printf ("\ n");
pulangan 0;
Dalam Contoh1.c, kita memanggil fungsi rand () dalam setiap lelaran untuk gelung dan mencetak nilai kembali fungsi. Urutan nilai fungsi rand () adalah sama setiap kali kita menjalankan program. Secara lalai, benih fungsi rand ditetapkan ke 1.
Kita dapat menetapkan benih untuk fungsi rand menggunakan srand () fungsi. Benih hanya boleh dibancuh sekali, dan sebelum kali pertama rand () panggilan fungsi.
fungsi srand ():
Fail Tajuk:
stdlib.h
Sintaks:
int srand (benih int yang tidak ditandatangani)
Hujah:
Fungsi ini mengambil 1 argumen
biji: Nilai integer yang digunakan sebagai biji untuk siri nombor pseudo-random baru.
Nilai pulangan:
Tiada
// Contoh2.c#sertakan
#sertakan
#sertakan
int utama ()
int i;
srand (masa (0));
printf ("10 Nombor Rawak => \ n");
untuk (i = 0; i<10;i++)
printf ("% d", rand ());
printf ("\ n");
pulangan 0;
Dalam Contoh2.c, kami telah menggunakan fungsi srand () untuk menetapkan benih awal urutan nombor rawak yang dihasilkan oleh fungsi rand (). Setiap kali program dijalankan, urutan yang berbeza dihasilkan. Dalam fungsi srand (), time (0) (dinyatakan dalam masa.h fail tajuk) digunakan sebagai benih. Fungsi kali ini (0) mengembalikan bilangan detik yang berlalu sejak zaman itu (00:00:00, 1 Januari 1970). Ini masih boleh menghasilkan urutan yang sama jika anda menjalankan program pada saat yang sama.
#sertakan
#sertakan
#sertakan
int utama ()
int i;
srand (masa (0));
printf ("10 Nombor Rawak antara 1 dan 10 => \ n");
untuk (i = 0; i<10;i++)
printf ("% d", (rand ()% 10) + 1);
printf ("\ n");
pulangan 0;
Dalam Contoh3.c kita telah melihat bagaimana nombor rawak dapat dihasilkan antara 1 dan 10.
#sertakan
#sertakan
#sertakan
int utama ()
int i, max, min;
printf ("Masukkan nilai Min =>");
scanf ("% d", & min);
printf ("Masukkan Nilai maksimum =>");
scanf ("% d", & maks);
jika (min> maksimum)
printf ("Nilai minimum lebih besar daripada nilai maksimum \ n");
pulangan 0;
srand (masa (0));
printf ("10 Nombor Rawak antara% d dan% d => \ n", min, maks);
untuk (i = 0; i<10;i++)
printf ("% d", (rand ()% (maks - min +1)) + min);
printf ("\ n");
pulangan 0;
Dalam Contoh4.c kami telah mengambil julat dari pengguna dan menghasilkan nombor rawak dalam julat ini. Rumusannya adalah: rand ()% (maksimum - min +1)) + min
#sertakan
#sertakan
#sertakan
int utama ()
int i;
srand (masa (0));
printf ("10 Nombor Rawak antara 0.0 dan 1.0 => \ n ");
untuk (i = 0; i<10;i++)
printf ("% f", ((terapung) rand () / RAND_MAX));
printf ("\ n");
pulangan 0;
Dalam Contoh5.c, kita telah melihat bagaimana kita dapat menghasilkan nombor rawak antara float 0.0 dan 1.0 Rumusnya adalah: (terapung) rand () / RAND_MAX)
#sertakan
#sertakan
#sertakan
int utama ()
int i;
float max, min;
printf ("Masukkan nilai Min =>");
scanf ("% f", & min);
printf ("Masukkan Nilai Maks =>");
scanf ("% f", & maks);
jika (min> maksimum)
printf ("Nilai minimum lebih besar daripada nilai maksimum \ n");
pulangan 0;
srand (masa (0));
printf ("10 Nombor Rawak antara% f dan% f => \ n", min, maks);
untuk (i = 0; i<10;i++)
printf ("% f", min + ((float) rand () / (RAND_MAX / (max - min))));
printf ("\ n");
pulangan 0;
Dalam Contoh6.c, kami telah mengambil julat dari pengguna dan menghasilkan nombor rawak dalam julat ini (kedua-duanya termasuk). Rumusannya adalah: min + ((apungan) rand () / (RAND_MAX / (maks - min)))
Kesimpulan:
Dalam artikel ini, kita telah belajar bagaimana nombor rawak dapat dihasilkan dengan menggunakan rand () dan srand () fungsi. Tidak ada jaminan mengenai kualiti nombor rawak yang dihasilkan oleh fungsi rand, tetapi cukup baik untuk penggunaan biasa.