zoukankan      html  css  js  c++  java
  • 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

    是的,尽管最成功的玩家不一定是最努力的那个,但是努力的人大都混的还不错。感谢这个残酷世界还给我们留下一条生路。

    看到这里,相信各位读者已经对这个问题有了自己的答案:

    该如何面对这个残酷的世界?

    那就是努力并坚持下去。

  • 相关阅读:
    《Programming WPF》翻译 第6章 3.二进制资源
    《Programming WPF》翻译 第5章 前言
    谈谈粒子系统
    GameFramework的初步设计
    引擎层次化设计
    关于HeapCreate(1)
    新的引擎ZeusEngine
    最短路径算法介绍
    Max导出插件
    游戏中的光影效果
  • 原文地址:https://www.cnblogs.com/shann001/p/13067934.html
Copyright © 2011-2022 走看看