Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

rand() và srand() trong C/C++


Bài viết thảo luận về hoạt động, cú pháp và ví dụ của rand() và srand() trong C++ STL.

rand() là gì?

rand() là hàm nội tại trong C++ STL, định nghĩa trong . Dùng để sinh dãy số ngẫu nhiên. Khi cần số ngẫu nhiên trong code (VD: game ludo sinh số 1-6), dùng rand().

Số ngẫu nhiên được sinh bởi thuật toán cho dãy số không liên quan mỗi lần gọi.

VD: sinh số 1-6: Num = rand() % 6 + 1;

Cú pháp

int rand();

Tham số

Không nhận tham số.

Giá trị trả về

Số nguyên từ 0 đến RAND_MAX.

Đầu vào rand() % 100 + 1; Đầu ra 57

Ví dụ

#include 
#include 
int main(void){
    printf("Randomly generated numbers are: ");
    for(int i = 0; i < 5; i++)
        printf(" %d ", rand());
    return 0;
}

Kết quả

Lần đầu chạy:

Randomly generated numbers are: 1804289383 846930886 1681692777 1714636915 1957747793

Lần thứ N chạy: (giống hệt lần đầu)

Randomly generated numbers are: 1804289383 846930886 1681692777 1714636915 1957747793

srand() là gì?

srand() là hàm nội tại C++ STL, định nghĩa trong . Dùng để khởi tạo bộ sinh số ngẫu nhiên (seed). Truyền đối số seed để sinh dãy giả ngẫu nhiên. Seed khác nhau -> dãy kết quả khác nhau.

Cú pháp

int srand(unsigned int seed);

Tham số

  • seed – số nguyên dùng làm seed cho bộ sinh số giả ngẫu nhiên.

Giá trị trả về

Số giả ngẫu nhiên.

Đầu vào srand(time(0)); rand(); Đầu ra 1804289383

Ví dụ

#include 
#include 
#include 
int main(void){
    srand(time(0));
    printf("Randomly generated numbers are: ");
    for(int i = 0; i < 5; i++)
        printf(" %d ", rand());
    return 0;
}

Kết quả

Lần đầu:

Randomly generated numbers are: 382366186 1045528146 1291469435 515349891 931606430

Lần thứ hai:

Randomly generated numbers are: 1410939666 214525217 875042802 1560673843 782892338