有6桶酒, 质量分别是30L, 32L, 36L, 38L, 40L, 62L; 其中1桶是红酒, 其余是白酒; 这5桶白酒, 其中2桶的体积之和=另外3桶体积之和的一半. 求红酒体积.

{{ time }}

有6桶酒, 质量分别是30L, 32L, 36L, 38L, 40L, 62L; 其中1桶是红酒, 其余是白酒; 这5桶白酒, 其中2桶的体积之和=另外3桶体积之和的一半. 求红酒体积.

2019年1月15日写的程序如下

for ($b = 0; $b <= 5; $b++) {
    for ($c = 0; $c <= 3; $c++) {
        for ($d = 4; $d >= $c + 1; $d--) {
            $a = [30, 32, 36, 38, 40, 62];
            $g = $a[$b];
            unset($a[$b]);
            sort($a);
            $f = $a[$c] + $a[$d];
            $h = $a[$c];
            $i = $a[$d];
            unset($a[$c]);
            unset($a[$d]);
            sort($a);
            $e = ($a[0] + $a[1] + $a[2]) / 2;
            if ($f == $e) {
                echo '匹配成功,红酒体积:' . $g . '<br>';
                echo "计算:{$h}+{$i}=({$a[0]}+{$a[1]} + {$a[2]})/2";
            }
        }
    }
}

2019-5-21, 写的程序如下

$arr = [30, 32, 36, 38, 40, 62];

for ($i = 0; $i < 6; $i++) {
    $arr_tmp = $arr; //备份数组
    $red_tmp = $arr[$i]; //确定一个红酒
    unset($arr_tmp[$i]); //搞掉一个元素
    $total = 30 + 32 + 36 + 38 + 40 + 62 - $red_tmp; //白酒质量总和
    $arr_tmp = array_values($arr_tmp); //清空键名
    for ($m = 0; $m < 4; $m++) {
        for ($n = $m + 1; $n < 5; $n++) {
            if ($arr_tmp[$m] + $arr_tmp[$n] == $total / 3) {
                echo '红酒质量:' . $red_tmp;
            }
        }
    }
}

2023-9-20, 写的程序如下:

<?php
$arr = [30, 32, 36, 38, 40, 62];

while (1) {
  shuffle($arr);

  if ($arr[0] + $arr[1] === ($arr[2] + $arr[3] + $arr[4]) / 2)
    break;
}

echo "红就体积是:" . $arr[5];