溫馨提示×

c++ rand函數(shù)怎樣避免生成重復(fù)值

c++
小樊
115
2024-07-11 18:08:33
欄目: 編程語言

要避免生成重復(fù)值,可以使用以下方法:

  1. 設(shè)置隨機種子:在使用rand函數(shù)之前,可以通過srand函數(shù)設(shè)置一個隨機種子,可以使用當(dāng)前時間作為種子,這樣每次程序運行時生成的隨機數(shù)序列都會不同。
srand(time(0));
  1. 使用set容器:可以將生成的隨機數(shù)存儲在set容器中,每次生成隨機數(shù)時先檢查是否在set中存在,如果存在則重新生成,直到生成一個不重復(fù)的隨機數(shù)。
#include <iostream>
#include <set>
#include <cstdlib>

int main() {
    std::set<int> generatedNumbers;
    while (generatedNumbers.size() < 10) {
        int randomNumber = rand() % 100;
        if (generatedNumbers.find(randomNumber) == generatedNumbers.end()) {
            generatedNumbers.insert(randomNumber);
            std::cout << randomNumber << " ";
        }
    }
    return 0;
}

通過以上方法,可以有效避免生成重復(fù)的隨機數(shù)。

0