gpt4 book ai didi

c++ - 我在用 srand 在 C++ 中构建非重复随机数组时做错了什么?

转载 作者:太空宇宙 更新时间:2023-11-04 15:51:02 25 4
gpt4 key购买 nike

我正在尝试构建一个长度为 (size1) 的随机数组。我研究过的方法是有两个单独的数组,一个用于我的随机数,另一个用于“检查”数组以确保数字不重复。这些在我的代码中分别标记为 (shuffle) 和 (visit)。 count1 是一个整数,用于对我的 for 循环进行计数。

我以不同的组合包含了以下内容,但没有奏效。

    #include <ctime>
#include <time.h>
#include <cstdlib>

我似乎在苦苦挣扎的代码是这样的:

    srand((unsigned)time(0));

for (count1 = 0; count1 < size1; count1++)
{
num = (rand()%size1);
if (visit[num] == 0)
{
visit[num] = 1;
shuffle[count1] = num;
}
}

最佳答案

您对 srand 的使用没有任何问题。但是,您描述的任务非常简单,不涉及使用 rand 函数。

std::vector<int> v(size);
std::iota(v.begin(), v.end(), 0);
std::random_shuffle(v.begin(), v.end());

如果您没有 iota 函数,它只会生成一个递增的整数序列。

关于c++ - 我在用 srand 在 C++ 中构建非重复随机数组时做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8301230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com