@JIscariot

Как заполнить временные промежутки с наибольшей эфективность?

Есть 2 массива. Первый содержит свободные промежутки времени. Второй задачи и их длительность.
Необходимо с максимальной эффективностью задать каждому промежутку времени свои/свою задачу.
<?php

$periods = [
    [
        'start' =>  \DateTime::createFromFormat(
            'Y-m-d H:i:s', '2018-02-17 10:00:00'
        ),
        'end' =>  \DateTime::createFromFormat(
            'Y-m-d H:i:s', '2018-02-17 12:00:00'
        ),
    ],
    [
        'start' =>  \DateTime::createFromFormat(
            'Y-m-d H:i:s', '2018-02-17 15:00:00'
        ),
        'end' =>  \DateTime::createFromFormat(
            'Y-m-d H:i:s', '2018-02-17 17:00:00'
        ),
    ],
    [
        'start' =>  \DateTime::createFromFormat(
            'Y-m-d H:i:s', '2018-02-17 21:00:00'
        ),
        'end' =>  \DateTime::createFromFormat(
            'Y-m-d H:i:s', '2018-02-17 22:00:00'
        ),
    ],

    // ...etc
];



$events = [
    [
        'name' => 'even1',
        'duration' => 30,
    ],
    [
        'name' => 'even2',
        'duration' => 210,
    ],
    [
        'name' => 'even3',
        'duration' => 150,
    ],
    [
        'name' => 'even4',
        'duration' => 30,
    ],
    [
        'name' => 'even5',
        'duration' => 120,
    ],
    [
        'name' => 'even5',
        'duration' => 160,
    ],

    // ...etc
];
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Это разновидность задачи об упаковке в контейнеры.

Зная как это называется, легко можно найти готовые реализации https://www.google.com/search?q=php+bin+packing+problem
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы