Ігор Гончаренко, теперь ясно, спасибо. Скажите пож-та как можно изменить таблицу на большее/меньшее число участников, т.к. при обычном добавлении столбцов-строк и растягивании формулы возникает ошибка
А кто-то уже рассматривал способ "расчета вистов в преферансе"? 1. Сначала делим сумму каждого на (n-1) "карманов", соответствующих каждому из "других игроков" 2. Затем вычитаем значение, лежащее в i-том кармане j-того игрока, из значения j-того кармана i-того игрока и делим разницу пополам для определения величины транзакции между ними (направление транзакции определяется знаком разницы значений) Таким образом, общее количество транзакций должно составлять сумму от чисел 0 до n или 1/2 *(n-1)*n
MCH, в вашей формульной версии решения также не понял как увеличить/уменьшить число участников - метод расягивания формул не подходит. Подскажите пож-та на примере листа Вар10 из файла "ПерераспределениеДоходов(илиЗатрат)2-3.xlsx"
Barmaldon написал: Скажите пож-та как можно изменить таблицу на большее/меньшее число участников,
как уменьшить: 1. в колонке В очистите значение у последнего участника. Готово, все пересчитано на 3-х
как увеличить: 1. добавьте в А под последним именем столько новых имен, сколько нужно 2. впишите в В исходные данные 3. исправьте формулу в В1, которая считает среднее, поставьте курсор в В1, потяните подсветившийся на листе диапазон за уголок вниз до нужного размера 4. за колонкой G вставьте столько колонок, сколько имен добавили в колонку А 5. внесите новые имена в строку 3 (Табло1 и Табло2, если нужно) 6. поставьте курсор в ячейку Д5, используемые в формуле диапазоны станут выделенными разноцветными рамками на листе. 7. исправьте размеры 2-х диапазонов: диапазон с исходными в В и диапазон в строке 3 с именами (как исправили размер диапазона в п.3) 8. скопируйте Д5 во все ячейки увеличившегося Табло1 9. если нужно, то скопируйте и в Табло2 удачи!
Изменено: Ігор Гончаренко - 16.11.2020 16:53:56(и забыл написать, но вы-то знаете что делать 10. строку 4 в Табло2 заполните пробелами)))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Ігор Гончаренко, спасибо, теперь все ясно. Только имхо надо в инструкцию еще добавить п.10.: в строке 4 Табло 2 вставить в добавленные колонки значения из крайней левой ячейки строки 4 Табло2
я действительно это пропустил, но минут череp 5 исправил, см. курсив снизу сообщения #35, там есть п.10 не начинайте снова о пустых ячейках в 4-й строке)))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
В продолжении решения задачи макросом, для сокращения количества транзакций, можно отсортировать исходный массив данных случайным образам, запустить решение несколько раз и выбрать лучшее решение (с наименьшим количеством транзакций). Каждый раз макрос подберет решение с наименьшей суммой транзакций, пытаясь сократить их количество, тем самым можно немного улучшить решение, если это возможно.
Например, для задачи про машины уже находится не 29, а 28 транзакций - это наименее возможное для этой задачи Также на приложенных случайных данных в задачах на 100 и 200 значений получается немного их уменьшить