AA 分账计算器
AA 分账计算器是一款专为多人聚餐、旅行、合租等场景设计的账单均摊与自动结算工具。只需录入每笔支出的付款人和参与人,系统即可自动计算出每个人的净额(应收/应付),并给出转账笔数最少的结清方案。
核心功能
- 成员管理:自由添加和删除分账参与人,支持任意人数
- 账单录入:记录每笔支出——谁付的、谁参与了、多少钱
- 部分参与:不是每笔账都全员参与,可单独勾选实际参与的人
- 自动均摊:每笔账单按选定参与人等额均摊,自动处理除不尽的情况
- 净额计算:汇总所有账单后得出每人净额,正数表示应收、负数表示应付
- 最优结算:使用位掩码 DP 算法(≤15 人)或贪心算法(>15 人)生成最少转账笔数的方案
- 一键复制:结算清单支持一键复制到剪贴板,方便发到群里留存
- 本地存储:所有数据保存在浏览器本地 localStorage,关闭页面不丢失,且不会上传到任何服务器
使用场景
- 朋友聚餐 AA:一人代付餐费,多人均摊,自动算出谁该转钱给谁
- 旅行多日多笔:跨多天的吃住行门票一起记,不同人付不同的单,最后一次性结清
- 部分人参与:打车只有 3 人坐、夜宵只有 2 人吃——按实际参与人单独分账
- 合租水电分摊:一个月内房租水电网费等各种共用支出汇总,月底按实际参与人结清
结算算法说明
每笔账单按选定参与人等额均摊:付款人 +金额,每个参与人 −金额/人数。所有账单累加后得到每人净额,正数 = 应收,负数 = 应付,全员之和恒等于 0。
结算阶段采用子集划分 + 贪心配对策略:先把净额非零的人尽量切成多个"子集和 = 0"的最小组,最少转账笔数 = 总人数 − 子集组数,组内用贪心两两抵消结清。
| 成员数 | 算法 | 结果 |
|---|---|---|
| ≤ 15 人 | 位掩码 DP(3^N) | 保证最少笔数 |
| > 15 人 | 大对大贪心 | 较少笔数(极少触发) |
常见问题
"尽量少的转账"是怎么算出来的?
先把每人净额算出来(正数=应收,负数=应付),再把这些净额尽量切成多个"子集和=0"的小组——组数越多,总转账笔数越少(最少笔数 = 总人数 − 子集组数)。每个最小零和组内部用贪心配对结算,正好用 |组|−1 笔搞定。≤15人时用位掩码DP求出全局最少笔数;超过15人退到普通贪心。
一人付钱、多人参与,怎么记?
在"添加账单"里把付款人选成实际付钱的那一位,参与人勾选实际享用的人即可。默认参与人是全部成员,对全员均摊的场景一键加单。
部分人不参与某笔账单怎么办?
在添加账单时,取消勾选没参与的人即可。例如打车100元只有3个人坐,就把第4人从参与人里去掉,这笔账只在那3个人之间均摊。
怎么处理不平均分摊(如有人吃了双份)?
当前版本按选定参与人等额均摊。如有人多吃一份的情况,可以把"多出的那一份"作为单独一笔账单加入:付款人不变,参与人只勾选"吃多份的那位"——相当于给他单独记一份的费用。
数据会不会丢?关掉浏览器还在吗?
所有成员和账单都保存在你本地浏览器的localStorage里,关掉页面再打开数据还在。不会上传任何服务器,也不会跨设备同步——换电脑或清浏览器缓存会清空。重要场合建议复制结算清单到群里留存。
AA 分账计算器支持多少人同时使用?
理论上支持无限人数。15人以内的场景使用位掩码DP算法保证全局最优转账方案;超过15人时自动切换为贪心算法,仍能给出较优方案。
金额除不尽怎么处理?
金额全程以分为单位整数计算。每笔除不尽时由付款人优先承担多出的1分(若付款人也是参与人),还有剩余则按花名册顺序补足,确保净额、转账清单和原始总额完全自洽。
AA 分账工具是否需要注册登录?
完全不需要注册或登录,打开即用。所有数据仅存储在当前浏览器的本地存储中,不会上传到服务器,充分保护隐私安全。