rand() Fungsi dalam Bahasa C

Rand Function C Language



Dalam bahasa C, baris() fungsi digunakan untuk Generator Nomor Pseudo (PRNG) . Angka acak yang dihasilkan oleh fungsi Rand() tidak benar-benar acak. Ini adalah urutan yang berulang secara berkala, tetapi periodenya sangat besar sehingga kita dapat mengabaikannya. NS baris() fungsi bekerja dengan mengingat nilai benih yang digunakan untuk menghitung nomor acak berikutnya dan benih baru berikutnya. Pada artikel ini, kita akan membahas secara rinci bagaimana bilangan acak dapat dihasilkan menggunakan baris() fungsi. Jadi, mari kita mulai!

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.



//Contoh1.c

#termasuk
#termasuk

ke dalamutama()
{

ke dalamSaya;

printf ('10 Angka Acak => ');

untuk(Saya=0;Saya<10;Saya++)
{
printf ('%D ', baris ());
}

printf (' ');
kembali 0;
}


Dalam Example1.c, kita memanggil fungsi Rand() di setiap iterasi untuk 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 baris() 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 seed untuk deret baru angka pseudo-acak.

Nilai kembali:

Tidak ada

//Contoh2.c

#termasuk
#termasuk
#termasuk

ke dalamutama()
{

ke dalamSaya;

srand ( waktu (0));

printf ('10 Angka Acak => ');

untuk(Saya=0;Saya<10;Saya++)
{
printf ('%D ', baris ());
}

printf (' ');
kembali 0;
}


Dalam Example2.c, kita telah menggunakan fungsi srand() untuk mengatur seed awal dari urutan nomor 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 epoch (00:00:00, 1 Januari 1970). Ini masih dapat menghasilkan urutan yang sama jika Anda menjalankan program dalam detik yang sama.

//Contoh3.c

#termasuk
#termasuk
#termasuk

ke dalamutama()
{

ke dalamSaya;

srand ( waktu (0));

printf ('10 Angka Acak antara 1 dan 10 => ');

untuk(Saya=0;Saya<10;Saya++)
{
printf ('%D ',( baris () %10) + 1);
}

printf (' ');
kembali 0;
}


Dalam Contoh3.c kita telah melihat bagaimana bilangan acak dapat dihasilkan antara 1 dan 10.

//Contoh4.c

#termasuk
#termasuk
#termasuk

ke dalamutama()
{

ke dalamSaya,maksimal,min;

printf ('Masukkan Nilai Min => ');
scanf ('%D', &min);
printf ('Masukkan nilai Maks => ');
scanf ('%D', &maksimal);

jika(min>maksimal)
{
printf ('Nilai min lebih besar dari nilai maks ');
kembali 0;
}

srand ( waktu (0));


printf ('10 Angka Acak antara %d dan %d=> ',min,maksimal);

untuk(Saya=0;Saya<10;Saya++)
{
printf ('%D ',( baris () % (maksimal-min+1)) +min);
}

printf (' ');
kembali 0;
}


Di Example4.c kami telah mengambil rentang dari pengguna dan menghasilkan angka acak dalam rentang ini. Rumusnya adalah: rand ()% (maks - min +1)) + min

//Contoh5.c

#termasuk
#termasuk
#termasuk

ke dalamutama()
{

ke dalamSaya;

srand ( waktu (0));

printf ('10 Angka Acak antara 0,0 dan 1,0=> ');

untuk(Saya=0;Saya<10;Saya++)
{
printf ('%F ',((mengambang) baris () /RAND_MAX));
}

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

//Contoh6.c

#termasuk
#termasuk
#termasuk

ke dalamutama()
{

ke dalamSaya;
mengambangmaksimal,min;

printf ('Masukkan Nilai Min => ');
scanf ('%F', &min);
printf ('Masukkan nilai Maks => ');
scanf ('%F', &maksimal);

jika(min>maksimal)
{
printf ('Nilai min lebih besar dari nilai maks ');
kembali 0;
}

srand ( waktu (0));

printf ('10 Angka Acak antara %f dan %f => ',min,maksimal);

untuk(Saya=0;Saya<10;Saya++)
{
printf ('%F ',min+ ((mengambang) baris () /(RAND_MAX/(maksimal-min))));
}

printf (' ');
kembali 0;
}


Di Example6.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 baris() dan srand() fungsi. Tidak ada jaminan tentang kualitas angka acak yang dihasilkan oleh fungsi rand, tetapi cukup baik untuk penggunaan biasa.