利用Python进行社会财富分配问题模拟(数据分析笔试题)

本文通过Python模拟了一个包含100人的财富分配游戏,每轮每人拿出一元随机给另一个人,共进行18000轮。研究了财富分布、最富有人的增长曲线、不同比例人群的财富占比以及财富缩水情况。并提供了高效简洁的代码实现,最终展示了第9000轮和18000轮的财富柱状图以及相关统计数据。
摘要由CSDN通过智能技术生成

问题描述:一个财富分配游戏
房间里有100个人,每人都有100元钱,他们在玩一个游戏。每轮游戏中,每个人都要拿出一元钱随机给另一个
人,最后这100个人的财富分布是怎样的?

模型假设:
1. 每个人初始基金100元。
2. 从18岁到65岁,每天玩一次,简化运算按照一共玩18000轮
3. 每天拿出一元钱,并且随机分配给另一个人,即每轮有100元的现金流动。
4. 财富值可以为负值

要求:

1. 注意审题。
2. 构建模型模拟(这里需要跑18000轮)
3. 18000轮的数据都要保留。
4. 尽可能少的使用for循环。
5. 最后绘制柱状图,查看该轮财富情况。只需要绘制第9000次,第18000次时的财富分布结果,共2张图。
6. 最富有的人相比于初始财富,翻了多少倍?
7. 最富有的前10名财富增长曲线。
8. 10%的人掌握着多少的财富?30%的人掌握着多少的财富?又有百分之多少人财富缩水至100元以下?

补充:

1. 结果数据中记录下整个分配的完整流程,可不用数据,变量在内存中即可。
2. 整个模型运行的耗时不应超过10秒。建议能控制在5秒内。
3. 使用高级或者精巧的代码书写。
4. 模型代码简练高效。有效代码行数控制在100行内。
5. 请提供完整的可运行代码,及对应的书面报告。代码请加注释说明。
6. 开发语言限制为R或者Python。

代码:

# -*- coding: utf-8 -*-
"""
Created on Mon Jul 30 10:32:24 2018
@author: D.henry
问题:房间里有100个人,每人都有100元钱,他们在玩一个游戏。
每轮游戏中,每个人都要拿出一元钱随机给另一个人,最后这100个人的财富分布是怎样的?
"""
import matplotlib.pyplot as plt #导入matplotlib.pyplot
import pandas as pd  #导入pandas
import random  #导入random
import heapq  #导入heapq
import time #导入time
import copy
 
start = time.time()  #记录程序开始的时间
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False  #设置允许中文标签
 
person = 100
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值