- 财富分配模型
模型假设:
① 每个人初始基金100元
② 从18岁到65岁,每天玩一次,简化运算按照一共玩17000轮
③ 每天拿出一元钱,并且随机分配给另一个人
④ 当某人的财富值降到0元时,他在该轮无需拿出1元钱给别人,但仍然有机会得到别人给出的钱
构建财富分配模型
fortune = pd.DataFrame([100 for i in range(1,101)],index = person_n)
def game1(data,roundi):
for i in range(0,roundi):
round_i = pd.DataFrame({'pre_fortune':fortune[i],'lost':0})
con = round_i['pre_fortune'] > 0
round_i['lost'][con] = 1
players = pd.Series(np.random.choice(person_n,len(round_i[round_i['lost'] == 1])))
gain_i = pd.DataFrame({'gain': players.value_counts()})
round_i = round_i.join(gain_i).fillna(0)
data[i+1] = round_i['pre_fortune'] - round_i['lost'] + round_i['gain']
return data
start = time.time()
data1 = game1(fortune,17000)
end &