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 段,(每一段是一个连续子序列,且每个元素恰好属于一 ...
随机推荐
- python 生成器(三):生成器基础(三)生成器表达式
生成器表达式可以理解为列表推导的惰性版本:不会迫切地构建列表,而是返回一个生成器,按需惰性生成元素.也就是说,如果列表推导是制造列表的工厂,那么生成器表达式就是制造生成器的工厂. 示例 14-8 先在 ...
- Flask 基础组件(八):message
message是一个基于Session实现的用于保存数据的集合,其特点是:使用一次就删除. from flask import Flask, flash, redirect, render_templ ...
- 【React学习笔记】React生命周期梳理(16.X前后两种)
React生命周期 「16版本以前的:」 生命周期流程图 组件从生成到被挂在到页面上的一系列过程 根据流程图打印的执行顺序图: 流程讲解: 初始化流程 start 开始创建组件 在这个周期中做的事情 ...
- 怎样从gitHub上面拉项目
1.注册 https://gitee.com/oschina 2.拿到代码在gitHub上的地址 3.打开eclipse-->import https://git.oschina.net/cai ...
- 记SqlSugar ORM框架之找不到主键问题
前端时间在.NetCore项目中使用SqlSugar ORM框架(引用sqlSugarCore依赖包)的时候遇到了一个奇葩问题:对表进行数据更新操作的时候,报错 “ You cannot have n ...
- DEX文件解析--6、dex文件字段和方法定义解析
一.前言 前几篇文章链接: DEX文件解析---1.dex文件头解析 DEX文件解析---2.Dex文件checksum(校验和)解析 DEX文件解析--3. ...
- 03 AMD规范的基础使用详解
AMD模块规范 1.1 AMD规范说明 AMD规范专门用来实现浏览器端的模块化,并且模块的加载是异步的:引入一个第三方的require.js脚本用来解析AMD规范编写的模块 1.2 基本语法 使用de ...
- 题解 CF938G 【Shortest Path Queries】
题目让我们维护一个连通无向图,边有边权,支持加边删边和询问从\(x\)到\(y\)的异或最短路. 考虑到有删边这样的撤销操作,那么用线段树分治来实现,用线段树来维护询问的时间轴. 将每一条边的出现时间 ...
- ES的集群原理
文章转载自:https://www.cnblogs.com/soft2018/p/10213266.html 一.ES集群原理 查看集群健康状况:URL+ /GET _cat/health (1).E ...
- Spring Boot 太狠了,一次性发布了 3 个版本!
Spring Boot 太狠了,北京时间 2020/07/25 今天一次性发布了三个主要版本,三条版本线同时更新: Spring Boot 2.3.2 Spring Boot 2.2.9 Spring ...