Pemrograman C

rand() Fungsi dalam Bahasa C

rand() Fungsi dalam Bahasa C
Dalam bahasa C, rand() 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. Itu rand() 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 rand() 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.

//Contoh 1.c
#termasuk
#termasuk
int utama()

di aku;
printf("10 Angka Acak =>\n");
untuk(i=0;i<10;i++)

printf("%d",rand());

printf("\n");
kembali 0;


Dalam Contoh1.c, kami memanggil fungsi Rand() di setiap iterasi for 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 rand() 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 benih untuk seri baru angka pseudo-acak.

Nilai kembali:

Tidak ada

//Contoh2.c
#termasuk
#termasuk
#termasuk
int utama()

di aku;
srand(waktu(0));
printf("10 Angka Acak =>\n");
untuk(i=0;i<10;i++)

printf("%d",rand());

printf("\n");
kembali 0;


Dalam Contoh2.c, kita telah menggunakan fungsi srand() untuk mengatur seed awal dari urutan angka 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 zaman (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
int utama()

di aku;
srand(waktu(0));
printf("10 Angka Acak antara 1 dan 10=>\n");
untuk(i=0;i<10;i++)

printf("%d",(Rand() %10) + 1);

printf("\n");
kembali 0;


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

//Contoh4.c
#termasuk
#termasuk
#termasuk
int utama()

int i,maks,min;
printf("Masukkan Nilai Min => ");
scanf("%d",&mnt);
printf("Masukkan Nilai Maks => ");
scanf("%d",&maks);
jika(min>maks)

printf("Nilai min lebih besar dari nilai maks\n");
kembali 0;

srand(waktu(0));
printf("10 Angka Acak antara %d dan %d=>\n",min,maks);
untuk(i=0;i<10;i++)

printf("%d",(Rand() % (maks - mnt +1)) + mnt);

printf("\n");
kembali 0;


Dalam Contoh4.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
int utama()

di aku;
srand(waktu(0));
printf("10 Angka Acak diantara 0.0 dan 1.0=>\n");
untuk(i=0;i<10;i++)

printf("%f",((mengambang)rand() /RAND_MAX));

printf("\n");
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
int utama()

di aku;
mengambang maks, min;
printf("Masukkan Nilai Min => ");
scanf("%f",&mnt);
printf("Masukkan Nilai Maks => ");
scanf("%f",&maks);
jika(min>maks)

printf("Nilai min lebih besar dari nilai maks\n");
kembali 0;

srand(waktu(0));
printf("10 Angka Acak antara %f dan %f =>\n",min,maks);
untuk(i=0;i<10;i++)

printf("%f",min + ((float)rand() /(RAND_MAX/(maks - min))));

printf("\n");
kembali 0;


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

Cara membalikkan arah gulir Mouse dan Touchpads di Windows 10
Mouse dan Panel sentuhs tidak hanya membuat komputasi menjadi mudah tetapi juga lebih efisien dan tidak memakan banyak waktu. Kami tidak dapat membaya...
Cara mengubah penunjuk Mouse dan ukuran kursor, warna & skema pada Windows 10
Penunjuk mouse dan kursor di Windows 10 adalah aspek yang sangat penting dari sistem operasi. Ini dapat dikatakan untuk sistem operasi lain juga, jadi...
Mesin Game Gratis dan Sumber Terbuka untuk Mengembangkan Game Linux
Artikel ini akan membahas daftar mesin game sumber terbuka dan gratis yang dapat digunakan untuk mengembangkan game 2D dan 3D di Linux. Ada banyak mes...