![]() |
![]() |
klem4 |
![]()
Сообщение
#1
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Необходимо разбить массив на N (2 в моем случае) равных по сумме массива. Есть 2 решения:
1 - перебором -- оптимально по результату, не оптимально по этическим соображениям 2 - следующий алгоритм: 1. сортируем начальный массив по убыванию. 1.1 A = [], B = []; 2. пока в начальном массиве есть элементы 2.1 ищем массив с мин. суммой из (A и B), кладем в него 0-й элемент из начального массива, удаляем его из начального массива. 2.2 goto 2 во втором варианте на начальном массиве [24,24,20,20,20], получаем A = [24,20], B = [24,20,20], неплохо, но не оптимально, оптимально будет A = [24,24], B = [20,20,20] Есть предложения ? -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
![]() ![]() |
![]() |
Текстовая версия | 7.07.2025 22:50 |