這個計算機能做什麼
本工具以日本職場聚餐(日語稱「飲み会」,即下班後的喝酒應酬)的分帳習慣為藍本。在日本的這類聚會中,習慣上女性付得較少,資深上司(前輩)則會多付一些或支付固定金額,而負責張羅的「幹事」(活動召集人)會吸收進位後剩下的零頭。這些角色設定反映的是日本特有的社交文化;不過背後的算式本身則放諸四海皆準。所有金額皆以日圓計算。如果你身在台灣套用,也能當成一套「依身分調整分攤比例」的通用分帳邏輯來使用,只是日本的稱呼與職場慣例與本地不同。
使用方式
輸入總金額,選擇進位單位(每人應付金額會向上進位到一個整數倍),再填入出席總人數。接著指定有幾位是資深上司,以及他們是付固定金額,還是在男性應付金額之上加付一筆額外費用;另外輸入女性人數,以及她們相對於男性的付款比例。剩下的人都視為男性,而其中一位就是負責的幹事。
算式說明
系統會先處理上司的金額:付固定金額的上司就直接付那個數字;採加價方式的上司,則付男性應付金額再加上加價部分。剩下的帳款會按「男性當量單位」來分攤,其中每位女性以男性的 womenRate 比例計算。算出男性基本應付金額後,再為每位出席者向上進位到所選的進位單位。由於每筆金額都往上進位,實際收到的總額會比帳單略多,這筆多出來的差額便全數退還給幹事。
$$\text{manPays} = \left\lceil \frac{\text{remainingAmount}}{\text{equivalentUnits} \times \text{roundingUnit}} \right\rceil \times \text{roundingUnit}$$
$$\text{baseManShare} = \frac{\text{remainingAmount}}{\text{menEquivalent} + \text{womenCount}\times\text{womenRate}}$$
$$\text{roundUpTo}(x,u) = \lceil x/u \rceil \times u$$
實際範例
帳單 28,760 日圓,進位單位 500,共 6 人,其中 1 位上司加價 2,000,2 位女性以 70% 計算。男性人數 = \(6 - 1 - 2 = 3\) 人。剩餘金額 = \(28{,}760 - 2{,}000 = 26{,}760\)。當量單位 = \((3+1) + 2\times0.7 = 5.4\)。男性基本應付 = \(26{,}760 \div 5.4 = 4{,}955.56\)。男性付 5,000、女性付 3,500、上司付 7,000。實收 = \(5{,}000\times3 + 3{,}500\times2 + 7{,}000 = 29{,}000\)。退還給幹事 = \(29{,}000 - 28{,}760 = 240\) 日圓。
常見問題
幹事是另外多出來的一個人嗎?不是。幹事是出席者之一;只要席間至少有一位男性,幹事就會被當成男性,先付男性應付金額,再把多收的零頭領回去。
如果上司的固定金額超過總帳單怎麼辦?上司付款會設上限,因此上司付的金額絕不會超過帳單總額。
為什麼實收會比帳單多?因為每筆金額都向上進位到整數,所以會產生一點點多出來的零頭,這筆差額會退還給幹事。