1024程序员节贫富差距题目解析

大家1024节快乐呀 (〜 ̄▽ ̄)〜
最近有很多朋友在评论区或者私信问我题,发生甚么事了?我一看,啊↘↗原来是之前出的算法题被B站选为1024节的题目了,这道题目是这样的:(链接)

这个题目来源于一个社会财富分配游戏:假设有1万人,每个人初始财富值相等,每轮游戏每个人都要随机地、等概率地给1万人当中的一个人1块钱,这样在绝对公平的交易规则下,财富的分布会出现什么现象?

模拟的结果是,即使在公平的交易规则下,财富分布的方差也会越来越大。如果统计第n轮游戏后最穷和最富者的差距,画出来是一个正比于根号n的函数:

然后小编征集题目时,我就打算把这道题目发给小编了。
但是甲方提出了新的要求,就是这个题目必须编程也能做,手动推理也能做,于是我就把游戏的人数改成了只有狸子和粉丝两人(所以大家才会看到题目的表述有点拗口,因为题目是从1万人改的(捂脸))
在只有两人的情况下,记狸子财富减粉丝财富等于x,每轮游戏后,x有1/2的概率不变,有1/4的概率+1,有1/4的概率-1(如果你想不清楚这一点的话,就把四种情况都列举一遍就可以了)
狸给狸,粉给粉,不变
狸给狸,粉给狸,+1
狸给粉,粉给粉,-1
狸给粉,粉给狸,不变
所以x是个一维上的随机游走(带1/2的回合停留,这不影响x的函数规律),学过随机游走的同学可以选出答案是根号n。
题目里用的表述是x是最穷和最富的差距,这个当然还是题目经过一次改版的历史遗留问题,不过不影响答案,我模拟过结果都是根号n。
然后,如果玩家真的采用编程的方法而不是推理的解法的话,人数只有2人反而不利于这类玩家,人数越少得到根号n的规律反而需要更长时间的模拟,而且没有1万人模拟时那么光滑 ╮(╯_╰)╭

橙色:狸子的财富,蓝色:粉丝的财富,绿色:贫富差距
好了大家放过我吧(逃