Pengaturcaraan C

rand () Fungsi dalam Bahasa C

rand () Fungsi dalam Bahasa C
Dalam bahasa C, the rand () fungsi digunakan untuk Penjana Nombor Pseudo (PRNG). Nombor rawak yang dihasilkan oleh fungsi rand () tidak betul-betul rawak. Ini adalah urutan yang berulang secara berkala, tetapi tempohnya sangat besar sehingga kita dapat mengabaikannya. The rand () fungsi berfungsi dengan mengingati nilai benih yang digunakan untuk mengira nombor rawak seterusnya dan biji baru berikutnya. Dalam artikel ini, kita akan membincangkan secara terperinci bagaimana nombor rawak dapat dihasilkan dengan menggunakan rand () fungsi. Oleh itu, mari kita mulakan!

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.

// Contoh3.c
#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.

// Contoh4.c
#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

// Contoh5.c
#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)

// Contoh6.c
#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.

5 Permainan Arcade Terbaik untuk Linux
Pada masa kini, komputer adalah mesin serius yang digunakan untuk permainan. Sekiranya anda tidak dapat memperoleh skor tinggi baru, anda akan tahu ma...
Battle For Wesnoth 1.13.6 Pembangunan Dikeluarkan
Battle For Wesnoth 1.13.6 dilancarkan bulan lalu, adalah rilis pengembangan keenam di 1.13.siri x dan memberikan sejumlah penambahbaikan, terutamanya ...
Cara Memasang League Of Legends di Ubuntu 14.04
Sekiranya anda peminat League of Legends, maka ini adalah peluang bagi anda untuk menguji menjalankan League of Legends. Perhatikan bahawa LOL disokon...