如何在PHP中33%的时间随机执行代码?

时间:2010-05-19 21:50:46

标签: php random

我不太清楚如何写这个:我想生成一个从0到2的随机数,然后写一个if语句,它只在33%的时间内执行特定的代码。

这就是我试图做的事情:

if (rand(0, 3)=="2") { echo "Success" };

6 个答案:

答案 0 :(得分:9)

这两个参数表示最小和最大随机值。如果你想要三分之一的机会,你应该只允许3种可能性。从最小0到最大3允许4个可能的值(0,1,2,3),因此不会完全按照您的意愿行事。此外,mt_rand()使用的功能比rand()更好。

所以它是:

if (mt_rand(1, 3) == 2)
    echo "Success";

答案 1 :(得分:3)

PHP的rand()限制包含在内,因此您需要if(rand(0,2) == 2)

答案 2 :(得分:2)

  

执行特定代码仅33%   当时。

只是想指出使用随机只会让代码执行33%机会而不是1/3运行它。

答案 3 :(得分:1)

您的代码将在25%的时间内执行。 {0 1 2 3}是一组4个数字。你想做什么

if(rand(1,3)==2)...

答案 4 :(得分:1)

替换为

if (rand(0, 2)==2) { echo "Success"; }

答案 5 :(得分:1)

我知道这是一个迟到的答案,但我会做

if(!rand(0,2))
 {
   //do stuff
 }

对于所需的任何分数1/x,请将0,2替换为0,x-1