Php равномерно распределяет количество элементов по группам, учитывая максимальное количество элементов в группеPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Php равномерно распределяет количество элементов по группам, учитывая максимальное количество элементов в группе

Сообщение Anonymous »

Итак, я пытаюсь добиться равномерного разделения элементов по группам с максимальным значением для каждой группы. Пока у меня есть эта функция, по сути, количество массивов — это количество ГРУПП, необходимых для разделения ЭЛЕМЕНТОВ, а ключи массива — это максимум значение для каждой группы:
public static function splitItems($groups, $items){
$n = count($groups);
$res = array_fill(0, $n, 0);

while($items >= $groups[0]){
for($i=$n-1;$i>=0;$i--){
if($items >= $groups[$i])
{
$res[$i]++;
$items -= $groups[$i];
}
}
}

if($items > 0){
$res[0]++;
}
return $res;
}

Когда я запускаю такую ​​функцию, как SplitItems([1,1],10); результат правильный:
Array
(
[0] => 5
[1] => 5
)

Теперь единственное, чего не хватает, — это принять во внимание КЛЮЧ массива как максимальное значение. Я ищу следующие результаты:
Ввод:
splitItems([14,2],10);
splitItems([6,8,2],14);

Выход:
Array
(
[0] => 8
[1] => 2
)
Array
(
[0] => 6
[1] => 6
[2] => 2
)


Подробнее здесь: https://stackoverflow.com/questions/792 ... t-of-items
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»