通过MCP连接 →

输入计算

请输入 N 个数值,从小到大排列,例如 800,1500,2400。最后一个数值为全程最终车费。

数学公式

广告

结果

总车费
2,400
日元(下方为分摊明细)
乘客(按下车顺序) 应付(日元)
Passenger 1 270
Passenger 2 620
Passenger 3 (last, absorbs remainder) 1,510
各人份额合计 2,400

每一段路程的车费在当时仍在车上的乘客之间平均分摊,并向上取整到最近的10日元。最后一位乘客承担取整后的余数,使分摊总额与计价器车费完全一致。

这个计算器能做什么

本工具适用于日本。在日本,出租车车费以日元计价,拼车分摊时按惯例向上取整到最近的10日元单位。当几个人合乘一辆出租车,并按"最近的目的地先下"的顺序依次下车时,计价器上的金额会一路往上涨。如果把全程车费平均分摊,对早下车的人并不公平——因为后面那段更长的路他们根本没坐。本计算器采用分段计费的方式:每两个下车点之间的那一段路,只由当时还在车上的人来分担。

出租车路线以横线表示,有三个下车点,每段乘客逐渐减少
每一段行程只在仍在车上的乘客之间分摊。

使用方法

输入乘客人数(N),以及每个人下车时计价器上的累计读数,从小到大、用英文逗号分隔。第一个数字是第一个人下车时计价器的总额,最后一个数字则是全程的最终车费。举例来说,三个人拼车时,你可以输入 800,1500,2400

计算公式解析

设 \(m_0 = 0\),\(m_k\) 为第 \(k\) 个人下车时计价器的累计读数。那么第 \(k\) 段路程的车费为 \(f_k = m_k - m_{k-1}\)。在这一段里,车上还有 \(N - k + 1\) 个人,因此每人需付

$$\text{Share}_j = \sum_{k=1}^{j} 10\left\lceil \frac{m_k - m_{k-1}}{\,N - k + 1\,} \right\rceil$$

$$\text{where}\quad \left\{ \begin{aligned} m_k &= \text{Meter at drop-off } k \text{ (yen)} \\ m_0 &= 0 \\ \text{leg } k &= m_k - m_{k-1} \text{ split among } N-k+1 \text{ riders} \end{aligned} \right.$$

即把该段车费除以当时的乘客数,再向上取整到最近的10日元。由于取整的缘故,各人付款总和可能会略微超出实际车费,所以由最后一位乘客承担余数:他要付的金额 = 全程总车费 - 其他所有人取整后的份额之和,从而保证总和恰好等于计价器显示的车费。

图示:一段的费用在剩余乘客间分摊后,向上取整到最接近的10日元
每段的新增费用由车上乘客平均分摊,然后每人的份额向上取整到下一个10日元。

实例演示

三位乘客,计价器读数依次为 800、1500、2400。第一段(3人):\(800/3 = 266.67\),向上取整为每人 270。第二段(2人):\(700/2 = 350\) 每人。第三段(1人):900。各人初步合计:\(P_1 = 270\),\(P_2 = 620\),\(P_3 = 1520\)(总和 2410)。最后一位乘客承担 10 日元的超额部分:\(P_3 = 2400 - (270 + 620) = 1510\)。最终结果:P1 付 270,P2 付 620,P3 付 1510,合计 2400。

常见问题

谁付得最多?通常是最后下车的人,因为他全程每一段都坐了,而且还要承担取整后的余数。

为什么要向上取整到10日元?日本的现金交易和拼车分摊礼仪都以10日元为单位;向上取整既能避免出现零头日元,也符合大家约定俗成的习惯。

这样分摊是不是绝对公平?它的前提是按"最近先下"的顺序下车。如果中途绕路导致某个较早的下车点反而更费钱,中间的乘客就可能被略微多收——这是"每段平均分摊"这种方式本身固有的局限。

最后更新: