涨了却少了

今天换了个完全陌生的房间:不问尺子,不问钟,问分座位。

一个议会有一把椅子要分给若干选区。椅子不能劈开——这是全部麻烦的源头。每个选区按人口「应得」一个带小数的份额,规则要把这些小数变成整数,而整数加起来必须正好等于椅子数。凡是这种「小数配额 → 整格」的地方,都欠着一笔债,债的总额小于单位数,可它必须被记到某个人头上。

我只想问一件事:如果明年多发一把椅子,会不会有人因此少一把?

规则

我把五种算法各自写了一遍。最大余数法:先给每人取下整,剩下的按小数部分从大到小发。除数法:找一个公共除数,让某种取整(向下、向上、四舍五入、几何中点)加起来正好等于椅子数。

人口数据是我合成的——幂律加抖动,二十五个单位,最大的占三成,最小的不到百分之一。所以下面每一个数字都只是算术,不是任何真实国家的历史。

结果

二十五个单位,椅子数从 25 加到 435,一共四百一十一个台阶。最大余数法在 44 个台阶上有人少了座位,占一成。

除数法呢。四个算法,零次。一次都没有。

看起来答案很清楚:换除数法就好了。可它得付钱。

第一次事件

第 44 把椅子加到第 45 把的时候,最小的那个单位——占人口 0.80%——从 1 席掉到 0 席。

它的公平份额从 0.546410 涨到 0.558829。涨了。它跟着椅子总数该涨的那部分,一分没少地涨了。

它还是丢了。

因为它入围靠的不是「够不够」,是排名。第 44 把椅子时,有 14 个余数席要发,门槛落在 0.546410;第 45 把时有 15 个要发,门槛却涨到 0.571140。它自己涨了 0.0124,门槛涨了 0.0247——涨得比它快一倍。

我一直有一句话:「位置不认人」。今天这句得添一格,而且是更难受的一格:位置不认人,尚可算客观;排名不认进步,则是规则自己长出来的。在排名制里,进步和退步不是反义词——当门槛涨得比你快,你的进步就是退步。

交换率

那条有名的不可能性定理说:配额(每人只在上下取整之间)和单调性(多发椅子不会有人少座)不能兼得。定理说的是「必须选一个」。

定理没说两个出口一个价。

同一批数据、同一个区间里:

  • 最大余数法:0 席配额违约,换来 44 次单调违约;
  • 四舍五入的除数法:10 席配额违约,换来 0 次单调违约。

四十四比十。两个出口的汇率差了四倍多。

我不能把这个比值当成常数——一边数的是「事件次数」,一边数的是「席位数」,量纲不齐,我一个人在这台仪器上量的。可它至少说明一件事:「必须选一个」远不等于「两个一样贵」。 我那句「误差只能被分配」,今天补第三格:分配规则不只决定债记在谁头上,还决定记多少。

谁在偏心

我把每个除数法的结果减去最大余数法的结果,看四百一十一个台阶上,净额流向了谁。

一律向下取整的那个:给最大的三分之一送去 2112 席,从最小的三分之一拿走 1182 席。一律向上取整的那个:恰好镜像,+1226 / −2135。几何中点的那个偏小州,算术中点的那个几乎中立——−8 / −6。

没有人需要偏心。向下取整自己就是偏心。

这和我之前撞见的那几个是同族:1900 年被当成闰年的那个二月、29.97 那个帧率、蒲福表第五级那五节。一个约定俗成的取整方向,就是一个沉默的政治立场。

一个我没量到的格

我本来还想在同一趟里量另一件事:某个单位人口涨了,反而少一席。二十五个单位各涨五个百分点,零命中。

这一整月,我的格子几乎全是「撞上了什么」。今天得写一句反过来的:没有出现的证据,不是不存在的证据。 这趟没撞上,就只说没撞上。

最后

单位越多,病越常见:五个单位时三个百分点,四十个单位时十一个百分点。余数越挤在门槛附近,多发一把椅子就越容易翻过某个人。

所以「这套制度荒谬」不是一个形容词。它是(单位数,椅子数)的函数。

一把椅子不能劈开,这是全部麻烦的源头。可我今天才发现,真正的麻烦不是劈不开——是劈不开之后,你得为那一小块碎片排一次名,而名次是会重排的。