Python分析「我们为什么这么穷」
有一个问题不知道有没有缠绕你很久,就是“为什么我们这么穷?”
今天就用Python深入分析一下这个问题。
首先我们从一个游戏来入手:
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789
房间内有100个人,每个人有100元,每过1分钟每个人都要随机给一个人1块钱(可以是别人也可以是自己,保持随机性),过一段时间后房间内资金分配会怎么样?
从直觉来看,这道题只有两种答案,一种是玩家的财产都差不多,另一种玩家的财产差异越来越大。
分析之前不妨先投票做个调查,你支持哪种结果?
no bb show your gif
设置一个列表有100个元素代替100个玩家的财产,初始数据皆为100,每次分钱对每个元素都减去1,并循环100次给1个随机元素增加1。
结果的动图如上,我们看到分了250次钱,结果好像是财富差距越来越大???
完整代码在这,你看看有没有错:
# 每人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年前要值多少钱?
End
是的,尽管最成功的玩家不一定是最努力的那个,但是努力的人大都混的还不错。感谢这个残酷世界还给我们留下一条生路。
看到这里,相信各位读者已经对这个问题有了自己的答案:
该如何面对这个残酷的世界?
那就是努力并坚持下去。
Python分析「我们为什么这么穷」的更多相关文章
- Python(四)基础篇之「文件对象&错误处理」
[笔记]Python(四)基础篇之「文件对象&错误处理」 2016-12-08 ZOE 编程之魅 Python Notes: ★ 如果你是第一次阅读,推荐先浏览:[重要公告]文章更新. ...
- 用Python分析2000款避孕套,得出这些有趣的结论
到现在为止,我们的淘宝教程已经写到了第四篇,前三篇分别是: 第一篇:Python模拟登录淘宝,详细讲解如何使用requests库登录淘宝pc端. 第二篇:淘宝自动登录2.0,新增Cookies序列化, ...
- 精心整理「服务器Linux C/C++」 成长路程(附思维导图)
前言 我不是名校毕业,更没有大厂的背景,我只是一个毕业不到 2 年的普普通通的程序员,在摸爬滚打的工作这段时间里,深知了有一个「完整的知识体系」是非常重要的.当事人非常后悔没有在大学期间知道这个道理- ...
- 众安「尊享e生」果真牛的不可一世么?
近日,具有互联网基因的.亏损大户(成立三年基本没盈利,今年二季度末亏损近4亿,你能指望它多厉害?).财产险公司—众安推出“尊享e生”中高端医疗保险(财险公司经营中高端医疗真的很厉害?真的是中高端医疗险 ...
- iOS模式详解—「runtime面试、工作」看我就 🐒 了 ^_^.
Write in the first[写在最前] 对于从事 iOS 开发人员来说,当提到 ** runtime时,我想都可以说出来 「runtime 运行时」和基本使用的方法.相信很多开发者跟我当初一 ...
- iOS 模式详解—「runtime面试、工作」看我就 🐒 了 ^_^.
引导 Copyright © PBwaterln Unauthorized shall not be *copy reprinted* . 对于从事 iOS 开发人员来说,所有的人都会答出「runti ...
- 百度「Web 前端研发部」面试过程和常见问题 可能会采用哪些方法来面试 STAR 面试法 喜欢什么样的面试者 喜欢问的问题
http://segmentfault.com/a/1190000002498800 在他们的github上看到的,收藏一下备用.看完觉得还有很多要努力的地方. FEX 的面试过程 我们一般会有 3 ...
- C#下实现的K-Means优化[1]-「离群点检测」
资源下载 #本文PDF版下载 C#下实现的K-Means优化[1]-「离群点检测」 前言 在上一篇博文中,我和大家分享了「C # 下实现的多维基础K-MEANS聚类」的[C#下实现的基础K-MEANS ...
- 「长乐集训 2017 Day10」划分序列 (二分 dp)
「长乐集训 2017 Day10」划分序列 题目描述 给定一个长度为 n nn 的序列 Ai A_iAi,现在要求把这个序列分成恰好 K KK 段,(每一段是一个连续子序列,且每个元素恰好属于一 ...
随机推荐
- java 面向对象(四十):反射(四)反射应用一:创建运行时类的对象
1.代码举例Class<Person> clazz = Person.class; Person obj = clazz.newInstance();System.out.println( ...
- java 基本语法(三) 运算符
1-算术运算符 1.算术运算符: + - + - * / % (前)++ (后)++ (前)-- (后)-- + [典型代码] //除号:/ int num1 = 12; int num2 = 5; ...
- python利用difflib判断两个字符串的相似度
我们再工作中可能会遇到需要判断两个字符串有多少相似度的情况(比如抓取页面内容存入数据库,如果相似度大于70%则判定为同一片文章,则不录入数据库) 那这个时候,我们应该怎么判断呢? 不要着急,pytho ...
- jupyter中%matplotlib inline报错
学习matplotlib时,使用的jupyter跑代码.报错如上图.大致就是后面的注释不能被识别.我寻思着注释不用识别吧,大概是因为%后跟的语句被全部当成命令行执行了,然后命令行不识别行内注释,导致报 ...
- java代码之美(17) ---Java8 LocalDateTime
Java8 LocalDateTime 在java8之前我们在处理时间的时候都是用的Date,但它其实有很明显的缺点. 1.我们也会对日期做一些操作,比如加几天.加几分,当月的最后一天等等.有些计算实 ...
- 【Go语言学习】匿名函数与闭包
前言 入坑 Go 语言已经大半年了,却没有写过一篇像样的技术文章,每次写一半就搁笔,然后就烂尾了. 几经思考,痛定思痛,决定金盆洗手,重新做人,哦不,重新开始写技术博文. 这段时间在研究Go语言闭包的 ...
- Git常用命令及方法大全
下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 本地 ...
- redis启动报错:The Windows version of Redis allocates a memory mapped heap for sharing with
windows系统下通过cmd命令:redis-server.exe redis.windows.conf 启动redis报错,控制台报错如下: The Windows version of Redi ...
- JavaScript高级程序设计(第三版) 6/25
第六章面向对象的程序设计 1.定义只有在内部才用的特性(attribute)时,描述了属性(property)的各种特征.这些特性是为了实现JavaScript引擎用的,因此在JavaScript中不 ...
- PHP array_intersect_ukey() 函数
实例 比较两个数组的键名(使用用户自定义函数比较键名),并返回交集: <?phpfunction myfunction($a,$b){if ($a===$b){return 0;}return ...