C++ 从特定整数生成随机数
我想从特定的整数生成随机数 示例:从这些值{2,7,9,8,11,13,16}生成随机数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
生成的数字是这些值之一。简单的方法是:将这些值放入向量中,使用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对问题的第一条注释中。谢谢您,但如果我想在循环中使用它,它每次都会生成相同的值;)您确定您使用了newrand()作为索引吗每次的%SIZE
值(int i=0;i@RudolfManusadzhyanrand()
可以在每次启动时生成相同的数字。常见的修复方法是在srand
之后多次调用rand()
:rand();rand();rand();
。你甚至可以用谷歌搜索它-它经常被使用。这就是为什么程序员不能使用rand()
,因为这是一种垃圾。