如果它不等于x,则再次生成随机数

unl*_*ver -2 php random

我想生成一个介于1和100之间的数字,但我希望它能够重新生成该数字,直到它等于50,一旦它等于50,然后将其回显.我该怎么做?

我的职责:

function create() {
    $production_line = mt_rand(0, 3);
    $random1 = mt_rand(0, 9);
    $random2 = mt_rand(0, 9);
    $random3 = mt_rand(0, 9);
    $random4 = mt_rand(0, 9);
    $random5 = mt_rand(0, 9);
    $random6 = mt_rand(0, 9);
    $production_year = mt_rand(3, 4);
    $week1 = 4;
    $week2 = 8;
    $factory1 = 4;
    $factory2 = 8;

    if ($production_line + $random1 + $random2 + $random3 + $random4 + $random5 + $random6 + $production_year + $week1 + $week2 + $factory1 + $factory2 == 55) {
        return $production_line.$random1.$random2.$random3.$random4.$random5.$random6.$production_year.$week1.$week2.$factory1.$factory2;
    }
}
Run Code Online (Sandbox Code Playgroud)

Ama*_*ali 6

使用简单的循环:

$i = 0;
while ($rand = mt_rand(0,100)) {
    $i++;
    if ($rand == 50) {
        // found 50, so break out of the loop
        break;
    }
}

echo "It took $i iterations to find 50";
Run Code Online (Sandbox Code Playgroud)

但这有点无意义,对吧?如果您只是要输出50,那么为什么需要生成一个随机数?只是回声50.另请注意,如果较大的限制是一个较大的数字,这可能是一个缓慢的操作.