Random Numbers

Random Numbers in Arduino

Arduino cung cấp các chức năng tạo số ngẫu nhiên, hữu ích trong nhiều ứng dụng như mô phỏng, trò chơi hoặc tạo hành vi ngẫu nhiên.

1. random()

Mô tả:
  • Hàm random() trả về một số ngẫu nhiên trong một khoảng xác định.
  • Có thể trả về số nguyên trong phạm vi bạn chỉ định hoặc có thể sử dụng hai đối số để chỉ định phạm vi cụ thể.
Cú pháp:
random();
random(min, max);
  • random(): Trả về một số ngẫu nhiên trong phạm vi từ 0 đến 2^32 - 1 (tức là từ 0 đến 4,294,967,295).
  • random(min, max): Trả về một số ngẫu nhiên trong phạm vi từ min đến max - 1. (Ví dụ: từ 10 đến 20 sẽ trả về các số từ 10 đến 19).
Ví dụ:
void setup() {
  Serial.begin(9600);
  Serial.println(random());           // Trả về số ngẫu nhiên trong phạm vi 0 đến 4,294,967,295
  Serial.println(random(10, 20));     // Trả về số ngẫu nhiên trong phạm vi 10 đến 19
}

void loop() {
  // Không có hành động gì trong loop
}
Chức năng:
  • Sinh số ngẫu nhiên trong phạm vi từ min đến max - 1.

2. randomSeed()

Mô tả:
  • Hàm randomSeed() được sử dụng để thiết lập giá trị "hạt giống" (seed) cho hàm random(). Bằng cách thay đổi giá trị hạt giống, bạn có thể thay đổi chuỗi các số ngẫu nhiên được sinh ra.
  • Nếu không sử dụng randomSeed(), Arduino sẽ sử dụng một giá trị hạt giống mặc định, và chuỗi số ngẫu nhiên sẽ luôn giống nhau mỗi lần bạn khởi động lại board Arduino.
Cú pháp:
randomSeed(seed);
  • seed: Giá trị hạt giống mà bạn muốn sử dụng để tạo ra chuỗi số ngẫu nhiên. Thông thường, bạn có thể sử dụng một giá trị ngẫu nhiên như giá trị đọc từ một chân đầu vào (ví dụ như đọc giá trị từ một chân analog).
Ví dụ:
void setup() {
  Serial.begin(9600);
  randomSeed(analogRead(A0));  // Đặt giá trị hạt giống bằng giá trị ngẫu nhiên từ chân A0
  Serial.println(random(10, 20));  // Trả về số ngẫu nhiên trong phạm vi từ 10 đến 19
}

void loop() {
  // Không có hành động gì trong loop
}
Chức năng:
  • Đặt giá trị hạt giống cho các số ngẫu nhiên, giúp tạo ra chuỗi ngẫu nhiên khác nhau mỗi khi board Arduino được reset.

Tóm tắt và Ứng dụng

Hàm Mô tả Ví dụ sử dụng
random() Trả về một số ngẫu nhiên trong một phạm vi xác định. random(10, 20) trả về số ngẫu nhiên trong phạm vi 10 đến 19.
randomSeed() Thiết lập giá trị hạt giống để tạo ra các chuỗi số ngẫu nhiên khác nhau. randomSeed(analogRead(A0)) để thiết lập giá trị ngẫu nhiên từ chân A0.