Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

rand() และ srand() ใน C/C++


ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน rand() และ srand() ใน C++ STL

แรนด์ () คืออะไร

ฟังก์ชัน rand() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว rand() ใช้เพื่อสร้างชุดตัวเลขสุ่ม เราใช้ฟังก์ชันนี้เมื่อเราต้องการสร้างตัวเลขสุ่มในโค้ดของเรา

เช่นเดียวกับที่เรากำลังสร้างเกมลูโดใน C ++ และเราต้องสร้างตัวเลขสุ่มระหว่าง 1 ถึง 6 เพื่อให้เราสามารถใช้ rand() เพื่อสร้างตัวเลขสุ่มได้

ตัวเลขสุ่มถูกสร้างขึ้นโดยใช้อัลกอริธึมที่ให้ชุดของตัวเลขที่ไม่เกี่ยวข้องทุกครั้งที่เรียกใช้ฟังก์ชันนี้

เช่นเดียวกับที่เราต้องการสร้างตัวเลขสุ่มระหว่าง 1-6 จากนั้นเราใช้ฟังก์ชันนี้เช่น −

Num =rand() % 6 + 1;

ไวยากรณ์

int rand();

พารามิเตอร์

ฟังก์ชันไม่ยอมรับพารามิเตอร์ -

คืนค่า

ฟังก์ชันนี้คืนค่าจำนวนเต็มระหว่าง 0 ถึง RAND_MAX

ป้อนข้อมูล

rand() % 100 +1;

ผลผลิต

57

ตัวอย่าง

แรนด์()

#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;
}

ผลลัพธ์

หากเราเรียกใช้รหัสนี้สำหรับการส่งออกครั้งแรกจะเป็น −

Randomly generated numbers are: 1804289383 846930886 1681692777 1714636915
1957747793

หากเรารันโค้ดนี้สำหรับเอาต์พุตครั้งที่ N จะเป็น −

Randomly generated numbers are: 1804289383 846930886 1681692777 1714636915
1957747793

srand() คืออะไร

ฟังก์ชัน srand() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว srand() ใช้เพื่อเริ่มต้นตัวสร้างตัวเลขสุ่ม ฟังก์ชันนี้เป็นจุดเริ่มต้นสำหรับการสร้างอนุกรมจำนวนเต็มสุ่มเทียม อาร์กิวเมนต์จะถูกส่งผ่านเป็นเมล็ดพันธุ์เพื่อสร้างตัวเลขสุ่มหลอก เมื่อใดก็ตามที่มีการใช้ค่า seed ที่แตกต่างกันใน srand เครื่องกำเนิดตัวเลขหลอกสามารถคาดหวังให้สร้างชุดผลลัพธ์ที่แตกต่างกันเหมือนกับ rand()

ไวยากรณ์

int srand(unsigned int seed);

พารามิเตอร์

ฟังก์ชันยอมรับพารามิเตอร์ต่อไปนี้ −

  • เมล็ดพันธุ์ − นี่คือจำนวนเต็มที่ใช้เป็นเมล็ดพันธุ์โดยเครื่องกำเนิดตัวเลขสุ่มหลอก

คืนค่า

ฟังก์ชันนี้จะคืนค่าตัวเลขสุ่มที่สร้างขึ้นโดยหลอก

ป้อนข้อมูล

srand(time(0));
rand();

ผลผลิต

1804289383

ตัวอย่าง

sran()

#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;
}

ผลลัพธ์

หากเราเรียกใช้รหัสนี้สำหรับการส่งออกครั้งแรกจะเป็น −

Randomly generated numbers are: 382366186 1045528146 1291469435 515349891
931606430

หากเราเรียกใช้รหัสนี้สำหรับเอาต์พุตเวลาที่สองจะเป็น −

Randomly generated numbers are: 1410939666 214525217 875042802
1560673843 782892338