AA 分账计算器

👥 花名册

添加参与分账的成员,支持添加和删除

暂无成员,请先添加至少 2 人

📝 添加账单

记录每笔支出:谁付的、谁参与了、多少钱

请先在花名册中添加至少 2 位成员

💡 使用说明

  • 添加成员:在花名册中输入名字添加参与分账的人
  • 录入账单:选择付款人、填写金额、勾选实际参与的人
  • 部分参与:不是每个人都要参与每笔账单,取消勾选即可
  • 自动结算:系统自动计算每人净额并给出最少转账笔数的方案
  • 数据安全:所有数据仅保存在浏览器本地,不会上传到服务器

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 分账工具是否需要注册登录?

完全不需要注册或登录,打开即用。所有数据仅存储在当前浏览器的本地存储中,不会上传到服务器,充分保护隐私安全。