一個拼手氣紅包,N個人搶,如何快速實現?
答:發時計算,搶時分配:
(1)發紅包的時候,一次計算,提前分好;
(2)搶的時候,一個一個領走;
此時,每個人搶到大包和小包的概率是相同的,整體具備公平性。
有沒有可能,搶一次計算一次,搶一次計算一次?
答:不太可能。
如果搶一次計算一次,第一個人抓一把,第二個人將剩下的抓一把,總體來說,後搶的人不公平。
如何實施計算呢?
答:切面條法。
一根麪條,隨機分成5根,閉上眼睛剁4刀就行了。用計算機來實現,就是在(0,1)內隨機4個不相同的值。
切面條法存在什麼問題?
答:隨機分,可能導致貧富差距過大。
例如,假設紅包總金額是1,那麼領得最多的人可以得到0.38元,而最少的可能只有0.03元,要差10倍之多。
畫外音:注意,這是單次貧富差距。
能否增加一個槓桿,調節紅包間差距?
答:狄利克雷分佈。
在衆多隨機變量分佈中,狄利克雷分佈非常符合我們的場景,它有一個 α 控制參數:
(1)α=1時,即上文的切面條法;
(2)α 逐步增大,切出來的麪條越均勻;
除了一次性的搶紅包,紅包接力玩法呢?
什麼是紅包接力玩法?
答:紅包接力的規則是,羣裏先由一人發紅包,羣內的人搶,“手氣最佳”的那個人繼續發新一輪的紅包,不斷往復循環。
如果一直這麼玩下去,會有什麼結果呢?
“悶聲發大財”?
“錯過了幾個億”?
“共同富裕”?
“寡頭壟斷”?
現在用試驗來模擬紅包接力的遊戲:
(1)假設有一個50人的羣;
(2)假設每人初始金額爲50元;
(3)假設每次紅包金額是20元;
(4)假設每次發給10個人;
(5)假設“手氣最佳”開始發下一輪;
(6)假設發完紅包,即扣除20元,之後餘額變成了負值,就破產退出遊戲。
試驗將 α 設爲2,並讓紅包接力100次,最後的模擬結果爲:
(1)有2位朋友不幸破產;
(2)資產最多的有92.20元,幾乎翻了一倍;
分析試驗結果:
(1)破產的玩家都是“手氣最佳”次數太多,導致入不敷出;
(2)資產最多的玩家屬於“悶聲發大財”,從未獲得過“手氣最佳”。
當然,概率面前人人平等,沒有誰能預知自己抽中紅包後會是最大的還是最小的,所以從對稱性的角度考慮,個人選擇的結果是完全隨機的。
但是,從整個羣的角度來看,有一個指標卻在悄悄發生變化,那就是這個羣的“貧富差距”。
畫外音:注意,這不是單次貧富差距,是隨着輪數增多的貧富差距。
在遊戲最開始的時候,羣友的資金都是一樣的,在若干次迭代之後,羣友的貧富差距被拉大了,那麼:
(1)如何量化這種貧富差距?
(2)隨着遊戲的繼續,貧富差距會有怎樣的變化?
如何量化貧富差距?
答:基尼係數(Gini Coefficient)。
基尼係數通常被用來衡量一個國家居民收入的公平性,其取值在0到1之間,越大表示貧富差距越大,即少部分的人掌握了這個經濟體大部分的收入。
觀察每一輪結束之後,基尼係數的變化,結果如下:
可以看出,隨着接力的進行,基尼係數的整體趨勢是在不斷變大的,意味着貧富差距會隨着遊戲的進行變得越來越大。
這其實也很好理解:總是會有人因爲拿了太多“手氣最佳”而破產,這樣財富會在越來越少的人中間進行分配,所以相應地貧富差距就拉大了。
基尼係數的趨勢,和什麼有關呢?
答:在遊戲的模型中,有一個參數 α 用來控制紅包金額分配的“公平”程度。
畫外音:α 越大,單次分割就越平均。
調整一下α 值,再來觀察基尼係數的變化趨勢。
上圖:紅線 α=2,綠線 α=20
可以看出,紅線和綠線雖然有所重疊,但總體來看綠線的取值要比紅線更大,也就是說:單次紅包分配越“公平”,多次分配後,貧富差距反而會越大。
聽起來可能有些反直覺,但其實也合情合理:
(1)如果紅包的分配是絕對公平的,那麼第一名得到的金額就將是2元,而下一輪又必須送出20元,虧得多,窮得快;
(2)如果紅包金額的波動性很大,第一名就會得到更多,也就更不容易破產;
所以說,一個規則是否真的“公平”,不能只看其表面。今天就到這裏,希望大家有收穫。
作業題,1塊錢隨機分成n份兒:
(1)最大值的期望是多少?
(2)最小值的期望是多少?