如何面对这个残酷的世界?——Java模拟
1,问题引入:
房间里有100个人,每人都有100元钱,他们在玩一个游戏。每轮游戏中,每个人都要拿出一元钱随机给另一个人,最后这100个人的财富分布是怎样的?
2,问题思考:
今天有幸看到这道题目,起初没有任何想法,于是打算采用计算机模拟的解决,模拟出的结果大出乎我意料,引发了我对人生的思考。
我们不妨把这场游戏视作社会财富分配的简化模型,从而模拟这个世界的运行规律。我们假设:每个人都在同一起跑线上,初始财富都相同,姑且就是100元。而“每天拿出一元钱给别人”可理解为基本的日常消费,这已经是再正常不过的社会生活了。我们来模拟若干时间之后,社会的财富分配,是趋向于平衡,还是形成了贫富差距。
3,说明:
1,本次模拟方法为纯计算机随机模拟,关于本题的所蕴含的数学原理作者尚未明晰,有兴趣的读者欢迎在评论区探讨。
2,本次计算机模拟采用的编程语言是Java,版本为JDK1.8,采用的开发工具为IntelliJ IDEA 2018.2.4 x64,程序运行的操作系统是64 位的Windows 10系统 。
3,关于本次模拟采用的框架是基于java swing 进行二次封装的图形化框架,考虑到本文的很大部分读者都不是从事于计算机的专业人员,加之本文主要也是对社会财富分配的思考。因此,本文尽可能的少涉及代码的编写和展示,如果需要该模板和程序源码的读者,可以在评论区留下联系方式。
4,问题求解:
4.1 财富分配开始时每个人的财富数量(如下图所示)
图中每个钜形就代表一个人,其高度代表金钱数量,由于现在是游戏尚未开始时刻,每个玩家的财富数量相同,都为100,故现在每个矩形的高度都为100。
4.2 财富分配开始后每个人的财富数量变化情况(如下图所示)

从图中可以看到,在这随机分钱的操作中,每个玩家财富值的变动是极为剧烈的,并且形成了贫富差距,且距离越来越大。为了方便描述整个社会财富的分配状况,我们按照财富值的增加一个排序算法、,等到的社会财富分布如下图。

从图中可以看出,初始时所有人的财富值相等,随着游戏的进行,财富值差距越来越大,财富的分配接近于幂律分布。最后,社会将有很少的富人和很多的穷人。让程序循环10000次,可以大致看出:
最富有的人的财富值约为初始财富的3.5倍。
top10%的富人掌握着大约30%的财富,top20%的富人掌握着大约50%的财富;60%的人的财富将缩水到100元以下。
大部分人的钱跑进了少部分人的口袋里。即使在最公平的规则下,世界依然展现出了残酷的一面。
4.3 如果允许借贷,世界的财富分布又将如何?
允许借债会让世界变得好一点吗?
在现实社会中,情境会更复杂一些。比如说,当我们没钱了,还可以找亲友、找银行、找投资人借债,说不定哪天就东山再起了呢。在允许借债的情况下,游戏结果如下图所示(排序后结果):
同样,我们让程序循环10000次,可以大致得到下述结论(红色表示负债):
游戏结束时,最富有的人的财富值约为初始财富的4倍。
top10%的富人掌握着大约33%的财富,top20%的富人掌握着大约56%的财富;大约25%的人背负着债务,最高负债约为200元。
实验表明,借债虽然能让我们在走投无路时多一些周转余地,但最终会让穷人变得更穷。
4.4 面对这个残酷的世界,努力真的有用吗?
努力的人生会更好吗?
我们中的绝大多数人,并没有一飞冲天的发财运气,想要改变命运,我们只能选择自己更努力,去争取更好的生活。
我们假设每个玩家的初始财富仍然为100元,但有10人比别人加倍努力,从而获得了1%的竞争优势,即赢得收益的概率比别人高出1%,模拟结果如何呢?

(说明:上图中的绿色柱子为更努力的玩家)
可以看到,社会财富的总体分布形态没有什么变化。但是,这10位努力的玩家都没有亏本,其中有8人都远高于初始财富,甚至有一人挤进了财富榜的top10。
实验表明,尽管努力的玩家不一定都是成功的一个,但是努力的人大都混的还不错。感谢这个残酷世界还给我们留下一条生路。
5,结论
1,在这随机分钱的游戏中,最后的结果是形成了贫富差距,且差距越来越大。最终,形成了较少富人,较多穷人的社会财富格局。我们大多数人可能都没有这么好的运气,但还是要怀有梦想,万一这概率就是你呢?
2,结合社会现状,每个人的初始财富应不尽相同。俗话说的好,条条大路通罗马,但有的人出身就在罗马。在相同起点上,贫富差距越来越大,而那些初始财富远高于起点的富人和远低于起点的穷人,岂不是穷人越穷,富人越富,屌丝越难成功逆袭富二代。
3,在允许借贷的情况下,社会的财富分布并没用显著变化,但社会的贫富差距却越来越大,富人越富,穷人越穷,最终穷人负债累累,达到远还不起的程度。联系现实社会,各种借贷平台,校园贷平台,虽在一定程度上短时间内解决了你的问题,但是最终却是让你负债更多。
4,这个世界如此残酷,不过天无绝人之路。从模拟情况可得:尽管努力的玩家不一定都是成功的一个,但是努力的人大都混的还不错。因此,就是想要平凡的生活,我们也需要努力,才不会被社会淘汰。
如何面对这个残酷的世界?——Java模拟的更多相关文章
- java模拟post请求发送json
java模拟post请求发送json,用两种方式实现,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求, 方法一: package main ...
- java 模拟qq源码
java 模拟qq源码: http://files.cnblogs.com/files/hujunzheng/QQ--hjzgg.zip
- java模拟开锁
java模拟开锁 service qq:928900200 Introduction to Computer Science II: CSCI142Fall 2014Lab #1Instructor: ...
- Jsoup实现java模拟登陆
Jsoup实现java模拟登陆 2013-10-29 14:52:05| 分类: web开发|举报|字号 订阅 下载LOFTER我的照片书 | 1:如何获取cookies. 1.1 ...
- [Java] 模拟HTTP的Get和Post请求
在之前,写了篇Java模拟HTTP的Get和Post请求的文章,这篇文章起源与和一个朋友砍飞信诈骗网站的问题,于是动用了Apache的comments-net包,也实现了get和post的http请求 ...
- Java模拟登录系统抓取内容【转载】
没有看考勤的习惯,导致我的一天班白上了,都是钱啊,系统也不发个邮件通知下.... 为了避免以后还有类似状况特别写了个java模拟登录抓取考勤内容的方法(部分代码来自网络),希望有人修改后也可以 ...
- Java模拟登陆02【转载】
在使用java访问URL时,如果该URL需要身份验证,那么就不能够直接访问,因为没有登陆.那么,如何解决这个问题呢? 方法是使用java模拟登陆,登陆后记录下cookie信息,在下次发起请求时 ...
- java模拟浏览器包selenium整合了htmlunit,火狐浏览器,IE浏览器,opare浏览器驱
//如果网页源码中有些内容是js渲染过来的,那你通过HttpClient直接取肯定取不到,但是这些数据一般都是通过异步请求传过来的(一般都是通过ajax的get或者post方式).那么你可以通过火狐浏 ...
- 上curl java 模拟http请求
最近,我的项目要求java模拟http请求,获得dns解决 tcp处理过的信息特定的连接. java api提供urlConnection apache提供的httpClient都不能胜任该需求,二次 ...
随机推荐
- Codeforces1238F. The Maximum Subtree(树形dp)
题目链接:传送门 思路: 题意说用线段的相交作为边,来构造树,所以不存在大于等于3个的线段两两相交,否则会构成环.因而构造出的树中,每个点最多只会与2个度大于1的节点相邻. 不妨把1设为树根,用deg ...
- zabbix服务的布置(脚本)
一,服务端配置 #!/bin/bash#clsn #设置解析 注意:网络条件较好时,可以不用自建yum源# echo '10.0.0.1 mirrors.aliyuncs.com mirrors.al ...
- spring+mybatis事务配置(转载)
原文地址:http://blog.csdn.net/wgh1015398431/article/details/52861048 申明式事务配置步骤 .xml文件头部需要添加spring的相关支持: ...
- 【NOIP2016提高A组模拟8.17】(雅礼联考day1)Value
题目 分析 易证,最优的答案一定是按\(w_i\)从小到大放. 我们考虑dp, 先将w从小到大排个序,再设\(f_{i,j}\)表示当前做到第i个物品,已选择了j个物品的最大值.转移就是\[f_{i, ...
- GO语言学习笔记5-defer的使用
1. 什么是defer defer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通过return正常结束或者panic导致的异常结束)执行. 2. defer的 ...
- 织梦dedecms自定义表单导出到excel教程
不写死任何字段,不写死任何东西,修改2个文件,让织梦自定义表单自由导出到Excel表格里. 添加教程 1.\dede\templets\diy_main.htm 找到 前台预览</a> 在 ...
- 用Java 实现断点续传 (HTTP)
在web项目中上传文件夹现在已经成为了一个主流的需求.在OA,或者企业ERP系统中都有类似的需求.上传文件夹并且保留层级结构能够对用户行成很好的引导,用户使用起来也更方便.能够提供更高级的应用支撑. ...
- #420 Div2 Problem B Okabe and Banana Trees (math && 暴力枚举)
题目链接 :http://codeforces.com/contest/821/problem/B 题意 :给出 m 和 b 表示在坐标轴上的一条直线 要求你在这条直线和x.y轴围成的区域中找出一个 ...
- ICPC — International Collegiate Programming Contest Asia Regional Contest, Yokohama, 2018–12–09 题解
目录 注意!!此题解存在大量假算法,请各位巨佬明辨! Problem A Digits Are Not Just Characters 题面 题意 思路 代码 Problem B Arithmetic ...
- 新手 Redis 配置笔记(windows),附下载地址
1.关于安装文件的选择 安装的时候应该下载免安装版,安装版虽然一路下一步就可以了,但是,当要修改配置文件的时候,特别痛苦,搜了两个小时,居然没有找到如何用命令修改配置文件,开放远程连接.所以对于第一次 ...