Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php随机选择两个偶数,第一个偶数的值较高_Php_Random - Fatal编程技术网

php随机选择两个偶数,第一个偶数的值较高

php随机选择两个偶数,第一个偶数的值较高,php,random,Php,Random,我有下面的代码,它给出了一个随机的数学问题,我试图从rand标签中只得到偶数,并使第一个数字高于第二个数字 <?php //set the sum $operarors = array( '+','-'); $operator = $operarors[rand(0,1)]; //random the numbers $numberone = rand(4,10); $numbertwo = rand(2,4); //get the answer if ($operator == '-'

我有下面的代码,它给出了一个随机的数学问题,我试图从rand标签中只得到偶数,并使第一个数字高于第二个数字

<?php 
//set the sum
$operarors = array( '+','-');
$operator = $operarors[rand(0,1)];
//random the numbers
$numberone = rand(4,10);
$numbertwo = rand(2,4);
//get the answer
if ($operator == '-') {
$answer1 = $numberone - $numbertwo;
}
if ($operator == '+') {
$answer1 = $numberone + $numbertwo;
}
if ($operator == 'x') {
$answer1 = $numberone * $numbertwo;
}
if ($operator == '/') {
$answer1 = $numberone / $numbertwo;
}

echo "Question: $numberone $operator $numbertwo<br>";
echo "<br>";
echo $answer1;

?>
但是对于这段代码的功能,我希望我不需要这样做

这背后的原因是,如果第一个数字是4,第二个数字是5,那么答案是-1。 这将是我的小女儿帮助她学习数学,而且她没有这么早教过数字:)

对于随机的偶数,我已经结束了我的思考,因为我试图找到问题的答案,却没有找到任何可以解决的问题

你可能会告诉我我不是php专家,所以请多给我一点经验,这样我就可以获得更好的知识

提前感谢

只需执行rand(),然后乘以2(保证偶数),将它们放入数组中,然后将它们放入数组中(按降序排列)

$numbers=arsort(数组)(
兰特(0,5)*2,
兰特(0,5)*2
));    
如果($numbers[0]==$numbers[1]){
$numbers[1]+=2;//如果需要它们不相等
}
回音“这是第一名:”$数字[0]”
'; echo“这是第二个:”$数字[1]。';
要获得偶数的随机数,请执行以下操作:

$max = 10;
echo $evenRandomNb = rand(0, round(($max / 2), 0, PHP_ROUND_HALF_DOWN)) * 2;
要获得两个随机数,其中一个大于第二个(从不相等),请执行以下操作:

您可能希望将这两种方法结合起来,得到两个偶数,第二个偶数比第一个偶数大:

$max = 10;
echo $firstNb = rand(0, round((($max - 1) / 2), 0, PHP_ROUND_HALF_DOWN)) * 2;
echo $secondNb = rand(round((($firstNb + 2) / 2), 0, PHP_ROUND_HALF_DOWN), round(($max / 2), 0, PHP_ROUND_HALF_DOWN)) * 2;

要生成一个随机偶数-在
[1,N/2]
范围内生成一个随机数,然后乘以2,这需要考虑质量。
$numbers[1]+=2
——这可能超出了预期范围:-)@zerkms-我想我的答案得到了一个要点,即以降序获得2个偶数的简单方法。任何额外的东西都应该很容易管理。我如何使用这两个例子?最后一个例子不是偶数。但是非常感谢你的回答完美!非常感谢,对于较大的数字,我必须先使用
$secondNb
$max = 10;
echo $evenRandomNb = rand(0, round(($max / 2), 0, PHP_ROUND_HALF_DOWN)) * 2;
$max = 10;
echo $firstNb = rand(0, $max - 1);
echo $secondNb = rand($firstNb + 1, $max);
$max = 10;
echo $firstNb = rand(0, round((($max - 1) / 2), 0, PHP_ROUND_HALF_DOWN)) * 2;
echo $secondNb = rand(round((($firstNb + 2) / 2), 0, PHP_ROUND_HALF_DOWN), round(($max / 2), 0, PHP_ROUND_HALF_DOWN)) * 2;