如何创建随机数,使php中的数字之和只能是整数或零


How to create random numbers in such a way that sum of the numbers should be only whole number or zero in php?

我正在为孩子们创建一个算法,该算法将创建随机数,并在每行显示5个数字,最多显示6行。对于整数来说,这很好。但当我取负数和正数之间的随机数时,就有可能得到负数。那么,我应该写什么,这样无论取负数,结果都只有正数或零?下面是我的代码,

   $Final_Array = array();
   $Final_Ansarray = array();
   for ($i = 1; $i < 31; $i++) {
    $Random_Number = mt_rand(-4,8);
    $RandVal = $Random_Number . "";
    array_push($Final_Array, $RandVal);
   }
  $Chunked_Array = array_chunk($Final_Array, 5);
  foreach ($Chunked_Array as $key => $value) {
    foreach ($value as $key2 => $value2) {
        echo $value2 . "'n";
    }
    echo "|";
   }
    foreach ($Chunked_Array as $k => $subArray) {
    $Answers = array_sum($subArray);
    echo $Answers . "|";
    array_push($Final_Ansarray, $Answers);
}

试试这个

$cols = 5;
$rows = 6;
$array = array();
for ($j = 0; $j < $rows; $j++)
    {
    do
        {
        for ($i = 0; $i < $cols; $i++)
            $array[$i] = mt_rand(-4, 8);
        }
    while (array_sum($array) < 0); // pass only non negative sums
    echo'sum', json_encode($array), ' = ', array_sum($array), PHP_EOL;
    }

示例输出

sum[1,-1,2,8,-2] = 8
sum[1,5,5,5,-4] = 12
sum[2,7,-1,6,0] = 14
sum[8,0,-2,-1,0] = 5
sum[7,-2,8,4,2] = 19
sum[7,-4,-4,0,1] = 0