首頁 >後端開發 >C++ >如何在 C 循環中產生不同的隨機數?

如何在 C 循環中產生不同的隨機數?

DDD
DDD原創
2024-12-09 17:20:12855瀏覽

How to Generate Distinct Random Numbers in a C   Loop?

在C 中的循環內產生不同的隨機數

在C 中,寫在循環內產生隨機數的程式碼有時會產生意想不到的結果。考慮以下程式碼片段:

for (int t = 0; t < 10; t++) {
  int random_x;
  srand(time(NULL));
  random_x = rand() % 100;
  cout << "\nRandom X = " << random_x;
}

此程式碼的問題在於循環內重複使用 srand(time(NULL))。雖然 srand() 用於初始化隨機數產生器,但在迭代過程中多次呼叫它會導致產生相同的隨機數序列。

要在每次迭代中產生不同的隨機數,srand( ) 應該只呼叫一次,最好是在程式開始時呼叫。這確保隨機數產生器的種子僅設定一次,從而有效地「隨機化」每次迭代的起點。

int main() {
  srand(time(NULL));
  for (int t = 0; t < 10; t++) {
    int random_x = rand() % 100;
    cout << "\nRandom X = " << random_x;
  }
}

此外,如果您需要完全重置隨機數初始化,您可以使用不同的種子值再次呼叫 srand()。這將產生一個新的隨機數序列,與先前的隨機數序列不同。

以上是如何在 C 循環中產生不同的隨機數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn