Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从特定整数生成随机数_C++ - Fatal编程技术网

C++ 从特定整数生成随机数

C++ 从特定整数生成随机数,c++,C++,我想从特定的整数生成随机数 示例:从这些值{2,7,9,8,11,13,16}生成随机数 生成的数字是这些值之一。简单的方法是:将这些值放入向量中,使用rand()生成一个介于0和vector.size()之间的数字,并将该值用作索引。尝试以下操作: #include <iostream> #include <stdlib.h> #include <time.h> int main () { srand ( time(NULL) ); //initial

我想从特定的整数生成随机数 示例:从这些值{2,7,9,8,11,13,16}生成随机数
生成的数字是这些值之一。简单的方法是:将这些值放入向量中,使用rand()生成一个介于0和vector.size()之间的数字,并将该值用作索引。

尝试以下操作:

#include <iostream>
#include <stdlib.h>
#include <time.h>

int main ()
{
  srand ( time(NULL) ); //initialize the random seed

  const int SIZE = 7;
  const int arrayNum[SIZE] = {2,7,9,8,11,13,16};
  int RandIndex = rand() % SIZE; //generates a random number between 0 and 6
  std::cout << arrayNum[RandIndex];
}
#包括
#包括
#包括
int main()
{
srand(time(NULL));//初始化随机种子
常数int SIZE=7;
数组常数[SIZE]={2,7,9,8,11,13,16};
int RandIndex=rand()%SIZE;//生成一个介于0和6之间的随机数

std::不能只生成随机索引。请查看
工具。永远不要使用
rand()
,永远忘记它。“在0和vector.size()之间”,如果得到
vector.size()会发生什么
并将其用作索引?。好的。但是您的文字回答包含两个可怕的错误。因此,您的答案是不正确的。两次。正确答案出现在Jarod42对问题的第一条注释中。谢谢您,但如果我想在循环中使用它,它每次都会生成相同的值;)您确定您使用了new
rand()作为索引吗每次的%SIZE
值(int i=0;i@RudolfManusadzhyan
rand()
可以在每次启动时生成相同的数字。常见的修复方法是在
srand
之后多次调用
rand()
rand();rand();rand();
。你甚至可以用谷歌搜索它-它经常被使用。这就是为什么程序员不能使用
rand()
,因为这是一种垃圾。