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.
#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.
#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
#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)
#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.