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

Công dụng của randomize() và srand() trong ngôn ngữ C

Khái niệm

Khi sinh số ngẫu nhiên, cần kiểm soát dãy số sinh ra. randomize() và srand() dùng để gieo hạt (seed) cho bộ sinh số ngẫu nhiên.

  • randomize() dùng đồng hồ máy tính để tạo hạt ngẫu nhiên.
  • srand() cho phép chỉ định giá trị khởi tạo cho bộ sinh.

Chương trình 1: Sử dụng rand() không gieo hạt

Mỗi lần chạy cho cùng một dãy số.

#include <stdio.h>

int main() {
    for (int i = 0; i < 10; i++)
        printf(" %d ", rand());
    return 0;
}

Kết quả

1804289383 846930886 1681692777 1714636915 1957747793 424238335 719885386 1649760492 596516649 1189641421

Chương trình 2: Sử dụng srand(time(0))

Mỗi lần chạy cho dãy số khác nhau (dựa trên thời gian hiện tại).

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

int main() {
    srand(time(0)); // gieo hạt bằng thời gian hiện tại
    for (int i = 0; i < 10; i++)
        printf(" %d ", rand());
    return 0;
}

Kết quả

1919778910 1203408690 1755813469 1976428341 37040990 1849384103 986990763 2040061815 391541163 1718314135