Локальный учёт общих расходов
Распределить затраты по участникам и правилам долей, минимизировать число переводов, сохранить историю.
Методика и примеры
Локальный учёт общих расходов
Распределяет суммы в целых минимальных единицах методом наибольших остатков. Для≤12 ненулевых балансов точно максимизирует число нулевых подмножеств и минимизирует переводы; валюты не смешивает.
Входные данные примера
Основной источник
[
{
"id": "bill1",
"payer": "A",
"amount": "100.01",
"currency": "RUB",
"shares": {
"A": 1,
"B": 1,
"C": 1
}
},
{
"id": "bill2",
"payer": "B",
"amount": "30.00",
"currency": "RUB",
"shares": {
"A": 1,
"B": 1,
"C": 1
}
}
]Результат примера
| Валюта | Участник | Оплатил | Его доля | Баланс +получить / −отдать |
|---|---|---|---|---|
| RUB | A | 100.01 | 43.34 | 56.67 |
| RUB | B | 30 | 43.34 | -13.34 |
| RUB | C | 0 | 43.33 | -43.33 |
Показано строк: 3 из 3.
Локальная обработка: до2 млн символов или20 000 записей на источник; до50 000 строк результата. Тяжёлые операции имеют отдельные ограничения и отмену. Измеренный спрос и внешние данные не подставляются.
