Подсчитайте, сколько раз статическое число помещается в другое число

Для расчета поверхности я ищу следующее решение.

У меня есть размер поверхности, как 60 м ², для этого квадрата у меня есть 2 вида
размеры материалов. Размер материала 2 м² и 4 м². Задача для меня сейчас
максимально эффективно рассчитать необходимые материалы и сохранить отдых
материала до минимума.

Таким образом, заполняя поверхность площадью 60 м² как можно большим количеством материалов 4 м², заполните ее площадью 2 м², чтобы материал был минимальным.

1

Решение

Это просто. С помощью этого метода вы можете использовать любое количество и любой размер материалов.

Храните ваши материалы в массиве. Переберите этот массив, сделайте вычисления и сохраните «rest» в другой переменной. Если в конце будет некоторый отдых, то добавьте еще 1 из последнего пункта.

$materials = array(2,4,8);
$surface = 63;
rsort($materials);
$rest = $surface;
$isFinished = false;
$data = array();
foreach ($materials as $material) {
$result = $rest / $material;
if ($result >= 1) {
$data[$material] = floor($result);
$rest -= $material * floor($result);
}
}

if ($rest > 0) {
$data[end($materials)]++;
}
echo "For a " . $surface . " you need the following materials: <br />";
foreach ($data as $key => $val) {
echo "Material " . $key . " * " . $val ."<br />";
}

Выход:

For a 63 you need the following materials:
Material 8 * 7
Material 4 * 1
Material 2 * 2
2

Другие решения

при условии, что вы используете PHP
Это будет началом поиска материала с минимальным отдыхом.

function getMinRest($surface, $num1, $num2){
$rest1 = $surface % $num1;
$rest2 = $surface % $num2;
return $rest2 <= $rest1 ? $num2:$num1;
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector