ในบทความนี้ เราจะอภิปรายการทำงาน syntax และตัวอย่างของ rand() และ srand() function ใน C++ STL
rand() คืออะไร?
rand() เป็น built-in function ใน C++ STL นิยามใน <cstdlib> header file ใช้สร้างชุดของ random numbers ใช้เมื่อต้องการสร้าง random number ในโค้ด
เหมือนเราทำเกมลูกเต๋าใน C++ ต้องการ random number 1-6 สามารถใช้ rand() ได้
Random number ถูกสร้างโดยอัลกอริทึมที่ให้ชุดตัวเลขที่ไม่เกี่ยวข้องกันทุกครั้งที่เรียกฟังก์ชันนี้
เหมือนต้องการ random number 1-6 ใช้แบบนี้ −
Num = rand() % 6 + 1;
Syntax
int rand();
Parameters
ฟังก์ชันไม่รับ parameter(s)
Return value
คืนค่า integer ระหว่าง 0 ถึง RAND_MAX
Input
rand() % 100 +1;
Output
57
ตัวอย่าง
rand()
#include <stdio.h>
#include <stdlib.h&g;
int main(void){
printf("Randomly generated numbers are: ");
for(int i = 0; i<5; i++)
printf(" %d ", rand());
return 0;
}
ผลลัพธ์
ถ้ารันโค้ดนี้ครั้งแรก (FIRST time) ผลลัพธ์จะเป็น −
Randomly generated numbers are: 1804289383 846930886 1681692777 1714636915 1957747793
ถ้ารันครั้งที่ N (Nth time) ผลลัพธ์จะเป็น −
Randomly generated numbers are: 1804289383 846930886 1681692777 1714636915 1957747793
srand() คืออะไร?
srand() เป็น built-in function ใน C++ STL นิยามใน <cstdlib> header file ใช้ initialize random number generators ฟังก์ชันนี้ให้จุดเริ่มต้นสำหรับการผลิต pseudo-random integer series อาร์กิวเมนต์ถูกส่งเป็น seed สำหรับสร้าง pseudo-random number ทุกครั้งที่ใช้ seed value ต่างกันใน srand pseudo number generator คาดว่าจะสร้างชุดผลลัพธ์ที่ต่างกัน เหมือน rand()
Syntax
int srand(unsigned int seed);
Parameters
ฟังก์ชันรับ parameter(s) ดังนี้ −
seed − integer ที่ใช้เป็น seed โดย pseudo-random number generator
Return value
ฟังก์ชันคืนค่า pseudo generated random number
Input
srand(time(0)); rand();
Output
1804289383
ตัวอย่าง
srand()
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
int main(void){
srand(time(0));
printf("Randomly generated numbers are: ");
for(int i = 0; i<5; i++)
printf(" %d ", rand());
return 0;
}
ผลลัพธ์
ถ้ารันโค้ดนี้ครั้งแรก (FIRST time) ผลลัพธ์จะเป็น −
Randomly generated numbers are: 382366186 1045528146 1291469435 515349891 931606430
ถ้ารันครั้งที่สอง (SECOND time) ผลลัพธ์จะเป็น −
Randomly generated numbers are: 1410939666 214525217 875042802 1560673843 782892338