映射随机数

时间:2013-02-07 03:34:01

标签: c++ c

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>

的内部for循环中

在一些随机游戏中,游戏制作者也创建了一个类似的rand()%6来调用以获得所有6个数字。这6个数字是否有任何机会与myRandomNumbers之一完全或部分相同?

2 个答案:

答案 0 :(得分:1)

好吧,你可以计算它,假设rand()给出一个完全均匀的分布(它没有,但我们会假设它无论如何)。如果您在[0, 5]范围内生成6个随机数,那么从同一范围生成的另一组6个随机数完全相同的概率为(1/6)^6 ~ 2.14e-5。您可以使用binomial distribution来计算它们部分相似的概率,即n中n的[0, 6]位置匹配。

答案 1 :(得分:0)

除非您通过调用rand()来播种srand()函数,否则您很可能会获得完全相同的数字(假设随机数由不同的进程创建,即)。