计算一个静态数字适合另一个数字的次数
Calculate how many times a static number fits into another number
对于表面计算,我正在搜索以下解决方案。
我的面积是 60 平方米,对于这个正方形,我有 2 种
materials 个尺码。 Material 大小为 2 平方米和 4 平方米。我现在面临的挑战是
尽可能有效地计算所需的 materials 并保持休息
material 的最小值。
因此,用 4m² materials 尽可能多地填充 60m² 的表面,并用 2m2 填充它以将 material 保持在最小值。
假设您正在使用 PHP
这将是找到 material 最少休息的开始。
function getMinRest($surface, $num1, $num2){
$rest1 = $surface % $num1;
$rest2 = $surface % $num2;
return $rest2 <= $rest1 ? $num2:$num1;
}
很简单。使用此方法,您可以使用任意数量和任意大小的材料。
将您的材料存储到数组中。遍历该数组,进行计算,然后将 "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
对于表面计算,我正在搜索以下解决方案。
我的面积是 60 平方米,对于这个正方形,我有 2 种 materials 个尺码。 Material 大小为 2 平方米和 4 平方米。我现在面临的挑战是 尽可能有效地计算所需的 materials 并保持休息 material 的最小值。
因此,用 4m² materials 尽可能多地填充 60m² 的表面,并用 2m2 填充它以将 material 保持在最小值。
假设您正在使用 PHP 这将是找到 material 最少休息的开始。
function getMinRest($surface, $num1, $num2){
$rest1 = $surface % $num1;
$rest2 = $surface % $num2;
return $rest2 <= $rest1 ? $num2:$num1;
}
很简单。使用此方法,您可以使用任意数量和任意大小的材料。
将您的材料存储到数组中。遍历该数组,进行计算,然后将 "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