随机顺序的连续数字

Consecutive numbers in random order

本文关键字:数字 连续 顺序 随机      更新时间:2023-10-16

如何生成一个包含一组连续数字但顺序随机的数组?例如,连续的数字是从 8 到 100(没有重复),我想要的是一个包含所有这些数字的数组,但序列是随机的。

我想 8 和 100 包含在范围内。

#include <algorithm>
#include <numeric>
#include <iterator>
int main()
{
   const size_t N = 93;
   int a[N];
   std::iota( std::begin( a ), std::end( a ), 8 );
   std::random_shuffle( std::begin( a ), std::end( a ) );
}

如果 8 是你帖子中的拼写错误,而你的意思是 0,那么代码将看起来像

   const size_t N = 101;
   int a[N];
   std::iota( std::begin( a ), std::end( a ), 0 );

我假设你是学生并且是编程新手,因此应该告诉一些基础知识。

rand() 生成随机数。

如果您希望数字在特定范围内,请采用其模组,例如

rand()%93;    // generate random numbers from 0-92

同样地 (rand()%93)+8//将生成 8-100 之间的数字

此外,为了检查重复项,您可以将数字与已存储在数组中的数字进行比较。