rand () Fungsi dalam Bahasa C

Rand Function C Language



Dalam bahasa C, the baris () 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 baris () 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 baris () fungsi. Jadi, 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

intutama()
{

inti;

printf ('10 Nombor Rawak => n');

untuk(i=0;i<10;i++)
{
printf ('% d', barisan ());
}

printf (' n');
kembali 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, fungsi rand diatur ke 1.





Kita dapat menetapkan benih untuk fungsi rand menggunakan srand () fungsi. Benih hanya boleh dibancuh sekali, dan sebelum kali pertama baris () 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

intutama()
{

inti;

srand ( masa (0));

printf ('10 Nombor Rawak => n');

untuk(i=0;i<10;i++)
{
printf ('% d', barisan ());
}

printf (' n');
kembali 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

intutama()
{

inti;

srand ( masa (0));

printf ('10 Nombor Rawak antara 1 dan 10 => n');

untuk(i=0;i<10;i++)
{
printf ('% d',( barisan () %10) + 1);
}

printf (' n');
kembali 0;
}


Dalam Contoh3.c kita telah melihat bagaimana nombor rawak dapat dihasilkan antara 1 dan 10.

//Contoh4.c

#sertakan
#sertakan
#sertakan

intutama()
{

inti,maks,min;

printf ('Masukkan nilai Min =>');
imbasan ('% d', &min);
printf ('Masukkan nilai Maks =>');
imbasan ('% d', &maks);

sekiranya(min>maks)
{
printf ('Nilai minimum lebih besar daripada nilai maksimum n');
kembali 0;
}

srand ( masa (0));


printf ('10 Nombor Rawak antara% d dan% d => n',min,maks);

untuk(i=0;i<10;i++)
{
printf ('% d',( barisan () % (maks-min+1)) +min);
}

printf (' n');
kembali 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

intutama()
{

inti;

srand ( masa (0));

printf ('10 Nombor Rawak antara 0.0 dan 1.0 => n');

untuk(i=0;i<10;i++)
{
printf ('% f',((terapung) barisan () /RAND_MAX));
}

printf (' n');
kembali 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

intutama()
{

inti;
terapungmaks,min;

printf ('Masukkan nilai Min =>');
imbasan ('% f', &min);
printf ('Masukkan nilai Maks =>');
imbasan ('% f', &maks);

sekiranya(min>maks)
{
printf ('Nilai minimum lebih besar daripada nilai maksimum n');
kembali 0;
}

srand ( masa (0));

printf ('10 Nombor Rawak antara% f dan% f => n',min,maks);

untuk(i=0;i<10;i++)
{
printf ('% f',min+ ((terapung) barisan () /(RAND_MAX/(maks-min))));
}

printf (' n');
kembali 0;
}


Dalam Contoh6.c, kami telah mengambil julat dari pengguna dan menghasilkan nombor rawak dalam julat ini (termasuk kedua-duanya). Rumusannya adalah: min + ((apungan) rand () / (RAND_MAX / (maks - min)))

Kesimpulan:

Dalam artikel ini, kita telah belajar bagaimana nombor rawak dapat dihasilkan dengan menggunakan baris () dan srand () fungsi. Tidak ada jaminan mengenai kualiti nombor rawak yang dihasilkan oleh fungsi rand, tetapi cukup baik untuk penggunaan biasa.