← Вернуться на главную

Как посчитать, кто кому сколько должен: минимизация переводов

Метод из двух шагов, который стоит за любым приложением для деления расходов — на одном разобранном примере и без формул.

Опубликовано:

После поездки каждый за что-то платил, и никто не знает итог. Инстинкт — «пусть каждый вернёт каждому его часть» — рождает хаос из мелких переводов. Есть способ чище, и он всего в два шага: посчитать балансы, а потом закрыть их минимальным числом платежей.

Шаг 1: балансы

Баланс — это просто сколько заплатил − своя справедливая доля. Возьмём троих друзей, потративших суммарно 6000, значит доля каждого — 2000:

УчастникЗаплатилДоляБаланс
Аня48002000+2800
Борис8002000−1200
Вера4002000−1600

Ане должны 2800; Борис и Вера вместе должны 2800. Сумма балансов всегда равна нулю — если у вас не так, где-то арифметическая ошибка.

Шаг 2: расчёт минимальным числом переводов

Теперь просто двигаем деньги из минусов в плюсы. Борис переводит Ане 1200, Вера переводит Ане 1600 — готово. Два перевода вместо шести, которые вышли бы из «каждый каждому». Правило: сводим самого крупного должника с самым крупным кредитором, гасим сколько можем, повторяем. С бОльшим числом людей идея та же — переводов никогда не нужно больше, чем участников минус один.

Почему это важнее в больших компаниях

Для шести человек наивное «вернуть каждому» — это до пятнадцати переводов; метод балансов требует максимум пяти. Это разница между закрытой поездкой и чатом, который спорит ещё неделю спустя. Те же балансы лежат в основе таблицы общих расходов — приложение просто делает за вас второй шаг (минимизацию), чего таблицы не умеют.

Пусть оба шага сделает приложение

В ДелиБабки вы добавляете траты по мере появления, отмечая, кто платил; приложение держит балансы актуальными и показывает минимальный набор переводов для расчёта. Это сердце любой хорошей стратегии деления расходов.

Частые вопросы

Как посчитать, кто кому должен?

Баланс = заплатил − доля; плюсы — им должны, минусы — должны они, сумма равна нулю.

Как сделать меньше переводов?

Двигайте деньги из минусов в плюсы, крупный к крупному — максимум участников−1 платежей.

Обойдитесь без счёта в уме

Добавляйте траты — балансы и минимум переводов посчитаются сами. Бесплатно.

Создать группу бесплатно