C++:如何生成非重复随机数列表

C++:How to generate a list of non-repeated random number

本文关键字:随机数 列表 何生成 C++      更新时间:2023-10-16

例如,生成从0到51的非重复随机数列表。0,51]

for(int i = 0;i<52;i++)
   {
    //print out 0,1,2,3,4,5,6,7,8,....,51.
   }

创建一个arrayvector并随机随机洗牌。

vector<int> v;
for(int i = 0; i < 52; ++i)
    v.push_back(i);
std::random_shuffle(v.begin(), v.end()); //need #include <algorithm>

第一个随机数将被v[0],你有52个非重复的随机数

看起来您正在尝试洗一副纸牌以进行家庭作业;)

以下是 Python 中的代码,可帮助您入门:

def shuffle(deck):
    for i in xrange(len(deck)):
        rand_index = random.randint(i, len(deck) - 1)
        temp = deck[i]
        deck[i] = deck[rand_index]
        deck[rand_index] = temp