-1

我想用 PHP 编写一个脚本,它会根据概率确定我是失败还是成功。例如,true90% 的时间返回(或“成功”),而false其他 10% 的时间返回(或“失败”)。基本上,我成功的概率为 9/10,失败的概率为 1/10。

我试图使用该rand()函数来查看数字是否匹配,但概率太低了。如果你们能帮助我获得一个或开始一个,我将不胜感激。谢谢。:)

4

3 回答 3

3
$rand = rand(1,100);
$probability = 90;

$succeed = $rand <= $probability;
于 2013-04-20T17:08:15.843 回答
0

这是基于FC答案的另一个版本。

这会测试 10000 次概率并给出大约 10% 的失败率。

<?php

  $probability = 90;

  $fails = 0;
  $succeeds = 0;

  for($i = 0; $i < 10000; $i++) {
    $rand = rand(1, 100);

    if ($rand <= $probability) {
      $succeeds++;
    }
    else {
      $fails++;
    }
  }

  echo 'Fail ratio: ' . ($fails / $succeeds) * 100 . ' %';

?>
于 2013-04-20T17:27:15.783 回答
0

这非常简化,但也许这可以帮助你......

// Array with 9 S's and one F -> 90% change of getting an S.
$a = array('S', 'S', 'S', 'S', 'S', 'S', 'S', 'S', 'S', 'F');

echo $a[array_rand($a)];
于 2013-04-20T17:06:02.443 回答