![]() |
![]() |
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";'
|
![]() ![]() |
TarasBer |
![]()
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Это АДА?
> (Every_Part - (Total + Numbers(i))) ** 2 > (Every_Part - Total) ** 2 А зачем квадрат, а не модуль? По смыслу же модуль явно - расстояние от среднего до текущей суммы. -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 8.07.2025 3:53 |