Penerangan Penghasilan Nombor Rawak dalam C

Hai, para pemrogram yang sedang mencari ilmu! Hari ini, kita akan melihat dunia yang menarik penghasilan nombor rawak dalam C. Sebagai guru sains komputer yang ramah di lingkungan sekitar anda, saya disini untuk membimbing anda dalam perjalanan ini dengan banyak contoh dan penjelasan. Jadi, mari kita mulakan!

C - Random Number Generation

Apa Itu Nombor Rawak?

Sebelum kita masuk ke dalam coding, mari kita memahami apa itu nombor rawak. Bayangkan anda sedang main permainan papan dan perlu meletakkan dadu. Nombor yang anda dapat adalah tidak dapat diprediksi, kan? Itu sebenarnya apa yang kita cuba capai dengan nombor rawak dalam pemrograman.

Dalam C, kita menggunakan fungsi yang dipanggil rand() untuk menghasilkan nombor rawak. Tetapi ini ada fakta menarik: nombor-nombor ini sebenarnya bukan benar-benar rawak! Mereka adalah "pseudorandom", bermakna mereka mengikuti corak yang kelihatan rawak tetapi sebenarnya deterministik. Jangan bimbang jika ini kelihatan membingungkan - kita akan jelajah ini lebih dalam sepanjang jalan.

Membuat Persiapan

Untuk menggunakan nombor rawak dalam C, kita perlu menyertakan pustaka khas yang dipanggil stdlib.h. Pustaka ini mengandungi fungsi rand() yang kita akan gunakan. Berikut cara kita menyertakannya:

#include <stdio.h>
#include <stdlib.h>

Sekarang, mari kita lihat beberapa contoh!

Contoh 1: Menghasilkan Nombor Rawak

Mari kita mulakan dengan program ringan yang menghasilkan nombor rawak:

#include <stdio.h>
#include <stdlib.h>

int main() {
int nombor_rawak = rand();
printf("Nombor rawak: %d\n", nombor_rawak);
return 0;
}

Bila anda jalankan program ini, anda akan melihat nombor rawak dicetak ke skrin. Tetapi tunggu! Jika anda menjalankan ia beberapa kali, anda mungkin perhatikan sesuatu yang aneh - anda mendapat nombor "rawak" yang sama setiap kali! Apa yang sedang berlaku disini?

Ini membawa kita kepada konsep penting dalam penghasilan nombor rawak: benih.

Benih dan Fungsi srand()

Benih adalah seperti titik permulaan untuk penghasilan nombor rawak kita. Secara default, rand() menggunakan benih yang sama setiap kali program anda dijalankan, yang adalah sebab anda mendapat nombor "rawak" yang sama.

Untuk memperbaiki ini, kita gunakan fungsi srand() untuk menetapkan benih yang berbeza setiap kali. Amalan umum adalah untuk menggunakan masa sekarang sebagai benih, yang berubah setiap saat. Berikut cara kita lakukan itu:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
srand(time(NULL));  // Menetapkan benih
int nombor_rawak = rand();
printf("Nombor rawak: %d\n", nombor_rawak);
return 0;
}

Sekarang, setiap kali anda menjalankan program ini, anda seharusnya mendapat nombor rawak yang berbeza!

Contoh 2: Menghasilkan Nombor Dalam Julat Tertentu

Biasanya, kita mahu nombor rawak dalam julat khusus. Sebagai contoh, apa jika kita mahu mensimulasikan meletakkan dadu enam muka? Berikut cara kita boleh lakukan itu:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
srand(time(NULL));
int lempar_dadu = (rand() % 6) + 1;
printf("Anda lempar %d\n", lempar_dadu);
return 0;
}

Dalam contoh ini, kita menggunakan modulus operator (%) untuk membatasi julat kita ke 0-5, kemudian menambah 1 untuk menggesernya ke 1-6. Teknik ini biasa digunakan untuk menghasilkan nombor rawak dalam julat khusus.

Contoh 3: Menghasilkan Banyak Nombor Rawak

Sekarang, mari kita menghasilkan beberapa nombor rawak. Kita akan membuat program ringan yang mensimulasikan meletakkan dadu 5 kali:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
srand(time(NULL));
printf("Meletakkan dadu 5 kali:\n");
for (int i = 0; i < 5; i++) {
int lempar = (rand() % 6) + 1;
printf("Lempar %d: %d\n", i+1, lempar);
}
return 0;
}

Program ini menggunakan for loop untuk meletakkan dadu 5 kali, mencetak setiap hasil.

Fungsi srand() Dalam Detil

Mari kita lihat lebih mendalam tentang fungsi srand(). Seperti yang kita sebutkan sebelum ini, ia menetapkan benih untuk penghasilan nombor rawak. Berikut adalah jadual ringkasan penggunaannya:

Fungsi Penerangan Parameter Nilai Balik
srand() Menetapkan benih untuk penghasilan nombor rawak Unsigned int benih Tidak ada (void)

time(NULL) yang kita gunakan sebelum ini mengembalikan masa sekarang dalam saat sejak 1 Januari 1970. Nilai ini berubah setiap saat, menjadikannya pilihan yang baik untuk menanam benih penghasilan nombor rawak kita.

Ingat, anda hanya perlu memanggil srand() sekali di permulaan program anda. Memanggilnya beberapa kali dengan benih yang sama akan mengulangi urutan nombor rawak, yang mungkin bukan apa yang anda inginkan.

Kesimpulan

Danitu, teman-teman! Kita telah mengenal dasar penghasilan nombor rawak dalam C. Kita telah belajar tentang fungsi rand(), pentingnya menanam benih dengan srand(), dan bagaimana menghasilkan nombor dalam julat khusus.

Ingat, nombor rawak sangat berguna dalam pemrograman. Mereka digunakan dalam permainan, simulasi, kriptografi, dan banyak lagi. Sebagai anda teruskan perjalanan pemrograman anda, anda akan menemui banyak penggunaan untuk apa yang anda pelajari hari ini.

Teruslatihan, terus kod, dan terutama, bersenang-senang! Siapa tahu? Mungkin anda akan menggunakan kemahiran ini untuk membuat permainan video atau simulasi saintifik berikutnya yang besar. Kemungkinan adalah sama tak terbatas seperti nombor rawak yang anda boleh hasilkan sekarang!

Credits: Image by storyset