for(int i=0;i<100;i++)
for(int j=0;i<6;j++)
{
cout<<rand()%6<<"," // Store these numbers in a map
}
cout<<endl;
假设,假设我将这些随机数存储在map<int,myRandomNumbers>
在一些随机游戏中,游戏制作者也创建了一个类似的rand()%6
来调用以获得所有6个数字。这6个数字是否有任何机会与myRandomNumbers
之一完全或部分相同?
答案 0 :(得分:1)
好吧,你可以计算它,假设rand()
给出一个完全均匀的分布(它没有,但我们会假设它无论如何)。如果您在[0, 5]
范围内生成6个随机数,那么从同一范围生成的另一组6个随机数完全相同的概率为(1/6)^6 ~ 2.14e-5
。您可以使用binomial distribution来计算它们部分相似的概率,即n
中n的[0, 6]
位置匹配。
答案 1 :(得分:0)
除非您通过调用rand()
来播种srand()
函数,否则您很可能会获得完全相同的数字(假设随机数由不同的进程创建,即)。