БМВ, к счастью, в кэше Deepseek сохранилась почти полная его копия )))
Задача оказалась сложнее, чем я думал. Загадал её дипсику и он трижды предлагал неверные решения )))
Предлагаю следующий алгоритм решения:
1. задать матрицу 31х5 из нулей и единиц
2. отсортировать её по строкам от меньшего числа направлений (в данном примере в начале рассмотреть 6-7 августа, когда товар отвозят только по направлению №1) к большему (доступны максимальное число направлений - в данном примере все четыре, кроме направления №4).
3. далее будем отдельно рассматривать строки с не максимальным числом направлений, для которых [в первом приближении] равномерно делим дневную выработку по доступным направлениям - в данном примере речь идет о 2+6+7=15 строках - половина всех строк месяца
4. Далее необходимо проверить для всех направлений (столбцов) не превышает ли уже распределённое количество товаров ежемесячную норму [и при необходимости откорректировать распределение на предыдущем шаге] и определить недостающее количество по каждому из направлений (оно должно быть положительным!)
5. для всех оставшихся строк (с максимальным доступным числом направлений) записываем в ячейках результаты вычисления частного от деления оставшейся суммы по каждому из направлений (столбцов) на доступное число строк (в данном примере на 16)
6. после проверки сходимости решения (при необходимости) можно отсортировать таблицу обратно по датам
Задача оказалась сложнее, чем я думал. Загадал её дипсику и он трижды предлагал неверные решения )))
Предлагаю следующий алгоритм решения:
1. задать матрицу 31х5 из нулей и единиц
2. отсортировать её по строкам от меньшего числа направлений (в данном примере в начале рассмотреть 6-7 августа, когда товар отвозят только по направлению №1) к большему (доступны максимальное число направлений - в данном примере все четыре, кроме направления №4).
3. далее будем отдельно рассматривать строки с не максимальным числом направлений, для которых [в первом приближении] равномерно делим дневную выработку по доступным направлениям - в данном примере речь идет о 2+6+7=15 строках - половина всех строк месяца
4. Далее необходимо проверить для всех направлений (столбцов) не превышает ли уже распределённое количество товаров ежемесячную норму [и при необходимости откорректировать распределение на предыдущем шаге] и определить недостающее количество по каждому из направлений (оно должно быть положительным!)
5. для всех оставшихся строк (с максимальным доступным числом направлений) записываем в ячейках результаты вычисления частного от деления оставшейся суммы по каждому из направлений (столбцов) на доступное число строк (в данном примере на 16)
6. после проверки сходимости решения (при необходимости) можно отсортировать таблицу обратно по датам