前面我们在解决公平分蛋糕问题时,提出公平的含义就是“每个人都认为自己得到的蛋糕不少于1/n”。其中n是参与分蛋糕的人数。并给出了一个“公平”的分蛋糕方法:第一个人把蛋糕分成n份,其他n-1个人每人挑一份。剩下没人选的那一份就给第一个人。然后剩下n-1个人把剩下的蛋糕合在一起,再进行一次类似的分配。每重复一次排除一个人,直到所有人都分到蛋糕为止。特别地,当n=2时,一个人负责切蛋糕,另一个人负责挑选蛋糕,剩下的蛋糕给第一个人,这种方式简称为“你分我选”方式。
其实公平分配蛋糕的方法不止这一种。一个等价的,但更好理解的方法是:先由两个人按照“你分我选”的方式把蛋糕公平地分为两份,每人一份。如果有第三个人,则那两个人各自把自己的蛋糕分为三份,然后让第三个人分别从中挑选一份。很容易证明,这个方法对这三个人来说是公平的。如果有第四个人,则前三个人各自把自己的蛋糕分为四份,然后让第四个人分别从中挑选一份即可。如果有更多的人,分配方法以此类推。
上述方法是公平的,也就是说,每个人都认为自己分到的蛋糕不少于1/n。但是现实是复杂的。很多时候,仅有公平仍然不能避免矛盾和争执。比如:虽然我也认为分给我的蛋糕不少于1/n,但张三却分得了最大的蛋糕,凭什么不是我获得最大的蛋糕!?更要命的是,由于价值观的不同,也许张三并不认为自己获得的蛋糕最大!所以一个好的蛋糕分配方案不仅是公平的,最好还是”无嫉妒”(envy-free)的。什么叫“无嫉妒“,即每个人都认为自己分到的蛋糕都是最大的。
可以证明,如果一个分配方法是无嫉妒的,即每个人都认为自己分到的蛋糕最大,那么它必然是公平的,即每个人都认为自己所得大于等于1/n。但公平的方法却不能保证是无嫉妒的。
本期的题目是:如果有三个人分蛋糕,你能提供一个无嫉妒的分配方法吗?
答案:假设3个人是A、B、C。A按照自己的标准把蛋糕切三块。如果B认为最大的两块一样大,那么按照C、B、A的顺序选蛋糕,结束。
如果B认为其中一块m最大,他就从m削去一小块r,使之与第二大的那块n一样大,把r放在一边。C先选,如果C拿了m,B必须拿n;反之,如果C没有拿m,则B必须拿m。A拿最后的一块。
B和C中没拿m的那位,把r分成三份,让B和C中拿了m的那位先挑一份,然后A选一份,最后一份留给自己。结束。