使用mt_rand(1,100)获得100的几率是多少?

时间:2015-02-02 05:44:31

标签: php math

我想知道使用mt_rand(1,100)获得100的几率是多少? 机会是1-100吗?这是否意味着如果我和#34;滚动"我将至少获得100次。 100次?

我一直想知道这一段时间,但我无法找到任何解决方案。 我想知道的原因是因为我试图计算我必须滚动多少次以获得100次保证。

<?php
$roll = mt_rand(1,100);
echo $roll;
?>

关心丹尼斯

4 个答案:

答案 0 :(得分:1)

  

机会是1-100吗?这是否意味着如果我和#34;滚动&#34;我将至少获得100次。 100次?

不,那不是随机数生成器的工作方式。举一个极端的例子:

mt_rand(1, 2)

可以假设在足够长的时间范围内,1的数量和2的数量将是相同的。但是,完全可以获得10个连续1的序列。仅仅因为它是随机的,并不意味着某个特定的数字必须出现,如果是这种情况则不再是随机的。

  

我试图计算我必须滚动多少次以获得100次保证。

在数学上,没有数字,其中100 保证在序列中。如果每个滚动都是独立的,那么赢得为100的概率为99/100

对于两卷,这可能是(99/100)^2或98%。对于100卷,其中约37%可能是您在该集合中赢得一个100。事实上,你需要滚动230套,才能在套装中没有100%的几率。

答案 1 :(得分:0)

通过调用此函数获得100的概率为1/100,但是当您调用100次时无法保证获得100。你必须占用更大的样本空间。例如:如果您将此功能调用100,000,000次,则很有可能会找到100次100,000次。

如果您更详细地告诉我们您的用例,可以通过更好的方式回答这个问题。

答案 2 :(得分:0)

获得100个卷中的1个只是解释它的统计方式。虽然 1%(意味着100分中的1分),但这并不意味着你真的会得到100分中的一分。这是一个偶然的问题。

答案 3 :(得分:0)

mt_rand使用Mersenne Twister生成伪随机数,据说是uniform distributed。因此,如果设置最小值和最大值,它应该(很可能)也是均匀分布的。

所以:你只能谈论在给定范围内得到一个数字的可能性,以及预期的特里数,直到得到一个特定数字或所有范围内的数字。

这意味着:无法保证给定的号码号码至少获得一次特定号码。