如何从给定的一组值生成随机数?

kev*_*mes 1 c random srand

int main()
{
    srand(time(NULL));
    int r=rand();
}
Run Code Online (Sandbox Code Playgroud)

上面的函数可以生成任何数字,但如果我想从给定的一组值生成一个数字,该怎么办呢?
例如,如果我想从值中随机生成一个数字4,6,1,7,8,3.
有没有办法实现这个目标?

任何帮助,将不胜感激.

pro*_*ard 6

这很简单.创建一个数组.有你想要的输出(4,6,1,7,8,3).然后在数组中选择一个随机存储桶.% 6基本上选择值0 - 5作为数组中的索引.

int main()
{
    srand(time(NULL));
    int myArray[6] = { 4,6,1,7,8,3 };
    int randomIndex = rand() % 6;
    int randomValue = myArray[randomIndex];
}
Run Code Online (Sandbox Code Playgroud)

有关如何rand()进一步操纵的一些信息.

rand() % 7 + 1

说明:

  • rand()返回0到大数之间的随机数.

  • %7除以7后得到余数,这将是0到6之间的整数,包括0和6.

  • 1将范围更改为1到7(包括1和7).