Я ищу оптимальный способ перевода средств между счетами, чтобы у всех на счету была одинаковая сумма. Я правильно рассчитал число, которое должно быть результатом для каждого аккаунта, но я ищу алгоритм для того, кто кому должен переводить и сколько средств (без центрального банка), чтобы у всех был одинаковый баланс.
Пример
+--------+---------+
| person | balance |
+--------+---------+
| A | 7 500 |
| B | -2 500 |
| C | -10 000 |
| D | 15 000 |
+--------+---------+
В этом примере каждый должен получить баланс o 2 500. Для этого:
- Человек А должен перевести 5 000 человеку Б
- Человек D должен перевести 12 500 человеку C
Подводя итог, у меня есть следующие данные:
- количество человек (> = 2)
- начальный баланс каждого человека
- какой баланс должен иметь каждый человек после перевода
Есть ли какой-нибудь алгоритм для этого? Это NP-полная проблема?