我有这段代码片段:
Random rand = new Random();
int chance = rand.Next(1, 101);
if (chance <= 25) // probability of 25%
{
Console.WriteLine("You win");
}
else
{
Console.WriteLine("You lose");
}
我的问题是,这里真的计算了赢得25%的概率吗?玩家在这里获胜的机会真的是25%吗?
编辑:
我刚刚写了这个:
double total = 0;
double prob = 0;
Random rnd = new Random();
for (int i = 0; i < 100; i++)
{
double chance = rnd.Next(1, 101);
if (chance <= 25) prob++;
total++;
}
Console.WriteLine(prob / total);
Console.ReadKey();
而且它非常不准确,范围从大约0.15到0.3。
但是当我进行更多的检查(将“i < 100”改为“i < 10000”)时,它变得更加准确。
为什么会这样?为什么100次检查不足以保证准确性?