有一個問題不知道有沒有纏繞你好久,就是「爲何咱們這麼窮?」python
今天就用Python深刻分析一下這個問題。web
首先咱們從一個遊戲來入手:app
不少人學習python,不知道從何學起。
不少人學習python,掌握了基本語法事後,不知道在哪裏尋找案例上手。
不少已經作案例的人,殊不知道如何去學習更加高深的知識。
那麼針對這三類人,我給你們提供一個好的學習平臺,免費領取視頻教程,電子書籍,以及課程的源代碼!
QQ羣:1097524789dom
房間內有100我的,每一個人有100元,每過1分鐘每一個人都要隨機給一我的1塊錢(能夠是別人也能夠是本身,保持隨機性),過一段時間後房間內資金分配會怎麼樣?學習
從直覺來看,這道題只有兩種答案,一種是玩家的財產都差很少,另外一種玩家的財產差別愈來愈大。spa
分析以前不妨先投票作個調查,你支持哪一種結果?3d
設置一個列表有100個元素代替100個玩家的財產,初始數據皆爲100,每次分錢對每一個元素都減去1,並循環100次給1個隨機元素增長1。code
結果的動圖如上,咱們看到分了250次錢,結果好像是財富差距愈來愈大???orm
完整代碼在這,你看看有沒有錯:視頻
# 每人100元,而後每人進行分錢
import random
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
p = [100] * 100 # 設置個列表,每人有多少錢
ax = plt.subplot(1, 1, 1)
coin = 1
for d in range(1,1001): # 設置分錢次數
color = []
for i in range(100): # 每次分錢每人先扣一塊錢
p[i] -= coin
for i in range(100): # 再將這100塊錢隨機分配到其餘人身上
p[random.randint(0, 99)] += coin
for i in p:
if i <= 0:
color.append("red")
else:
color.append("blue")
ax.cla() # 清楚畫面
ax.bar(range(100), p , width=0.9, color = color,alpha=0.5) # 畫柱狀圖
plt.title("第%d次分錢" % d) # 設置標題
plt.ylabel("身價")
plt.pause(0.01) # 設置暫停
plt.show()
在資源總和固定和分配機率固定的狀況下,若是剛開始第一我的得到1塊錢,第二我的失去1塊錢,他們的差距是兩塊錢。
第二我的財產想超過第一我的的機率呈指數遞減,而且當分配的次數越多,兩者的差距越大,反超機率越低。
或者咱們用折線圖來展現,爲了快速看出結果,修改分配的金錢基數爲10塊錢(即每次減去10塊錢和每次隨機得到10塊錢)。
咱們能夠從動圖看到確實一開始有錢的越有錢,窮的愈來愈窮,雖然中間有所波折,可是也像極了咱們的人生,大起大落落落落落落....
下圖是第539次分配(分配金錢基數爲1塊錢),能夠看到黃色和藍色玩家從一開始的落後始終也沒能翻身,紫色玩家即便大幅度家道中落也處在玩家的中間位置。
這裏提升資金分配的基數爲10,並對曾破產的玩家修改顏色爲紅色。
從動圖能夠看出,曾經破產的玩家再逆襲是能夠的,可是逆襲的玩家從數量和財富值來講都是不如一開始領先的玩家。
若是更貼近一下真實的世界,每一個人出生的財產是不同的。
即便進行1000次財產分配,出生財產處於下層的依舊處於下層,出生財產處於上層依舊處於上層。
不乏也有紅色這樣的上進派,但願經過本身的努力進入上層階級,這須要時間,也須要運氣。
固然政府是會保證人民的基本生活條件,因此咱們設置參數當一個玩家再財富爲0時,政府會主動給他補貼10。
咱們從下圖能夠看到紫色玩家展現了真正的落地反彈。
從時代的角度來看,資源的總和隨着生產力的發展是不斷膨脹的。
這裏咱們設置每次分配的時候,每一個玩家都減去1塊錢可是可以得到3塊錢,最後的結果以下圖。
能夠看到,全部玩家的財富都在增加。因此當咱們把眼光放的長遠,咱們比過去的人們富有太多,能夠想一想如今的手機放在100年前要值多少錢?
是的,儘管最成功的玩家不必定是最努力的那個,可是努力的人大都混的還不錯。感謝這個殘酷世界還給咱們留下一條生路。
看到這裏,相信各位讀者已經對這個問題有了本身的答案:
該如何面對這個殘酷的世界?
那就是努力並堅持下去。