int main()
{
srand(time(NULL));
int r=rand();
}
上述函数可以生成任何数字,但如果我想从给定的一组值生成数字,该怎么办呢
例如,如果我想随机生成一个数字,但只能从值4,6,1,7,8,3
生成
有没有办法实现这个目标?
任何帮助都将不胜感激。
答案 0 :(得分:5)
非常简单。创建一个数组。有你想要的输出(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];
}
有关如何进一步操纵rand()
的一些信息。
rand() % 7 + 1
说明:
rand()返回0到大数字之间的随机数。
%7在除以7后得到余数,这将是0到6之间的整数。
1将范围更改为1到7(包括1和7)。
答案 1 :(得分:2)
如果您想要随机选择一组预定义的值,则将它们放在一个数组中,然后使用rand
将索引放入数组中。
参见例如this old SO answer了解如何获取范围内的随机数(即在零和数组大小之间)。
答案 2 :(得分:0)
您可以获取所需的随机值列表并将其存储在数组中。然后,您可以从列表范围中选择一个随机数,并选择指定索引处的位置。
答案 3 :(得分:0)
您可以将随机数除以只剩下剩余的数字。 use是您想要的数字数组的索引
例如,如果你取(随机数%3)你会得到0,1,2 所以你可以使用3个想要数字的数组