查看原文
其他

Python|如果只给部分人发钱会如何?

陈鸥辉 信息科技时代 2024-03-15

Python|随机模拟财富流向的可视化编程

    昨天写了这一篇,突然想起疫情期间国外的不少国家给穷人发钱的行为,我昨天模拟的是人均发钱,就是每个人都具有均等机会获得放水的那一元,在进行两百万次模拟后,结果还是出现了负资产,晚上睡觉的时候就想,如果我要消灭负资产那怎么办?那就“扶贫”咯,只要这个人可能是负资产,我就给他发一块钱,看看结果会如何?

import randomfrom pyecharts import Bars = [100 for i in range(100)] # 一开始人手100元v1=s.copy()for i in range(200000):#执行20万次 for j in range(100):#模拟100个人每次随机给别人一块钱 x=random.randint(0,99)#可以随机给任何一个人 if(s[j]>0):#只给没钱的人发钱,消灭负资产 s[j]-=1 # 假设第j个人随机给别人一块钱 s[x] += 1 # 第j个人的一块钱钱给第x个人v2=s.sort() #排序v2=[s[i] for i in range(0,100,2)]+[s[i] for i in range(99,0,-2)]#正太分布attr = [i+1 for i in range(100)]bar = Bar("模拟随机给他人一元二十万次的效果", "初始值与最终值")bar.add("初始值", attr, v1, mark_line=["min", "average", "max"])bar.add("最终值", attr, v2, mark_line=["min", "average", "max"])bar.render()

    从图中可以看出,放水倍数只翻了3.71倍,但是数据向少数人集中,尝试两百万次后结果也是如此。如果我只给1000元以上的人放水呢?运行二十万次之后数据不忍直视,放水翻了16倍,财富竟然向3个人集中:

    哈哈,能不能只向中间的人发钱呢?比如只给收入在300~600之间的人发钱,会怎么样呢?结果放水翻了4.77倍,出现明显的断层了。

    那么由这个随机模型,是不是可以得出钱最好发放给穷人呢?哈哈,社会问题当然比数学模型要复杂得多,不能这么简单下结论。不过经过这次模型模拟,给了我一些不一样的启示:我原本以为随机是向平均分配趋势走向的,结果发现是正太分布。然后我又想外力干预究竟会产生怎样的异像,结果完全出乎我的意料,穷人那里加把火几乎不会改变贫富差距,而富人那里加把火不管从放水倍数还是到财富集中都是非常诡异的,为什么连随机数都表现出这样明显的“嫌贫爱富”呢?在给中产阶级放水结果也破坏了正太分布的效果,则产生明显的财富断层。

    有人说我们大概率是活在一个虚拟的世界里,有时候想想这奇妙的世界居然有着无数的数形之美,某些方面的发展规律竟然也会自然而然地走向某一数理模型,是不是很神奇呢?正所谓“活到老,学到老”,这个世界真的是奇妙的一种存在值得我们一辈子去探索。当然,我们不能因此而迷信某种超能力,至少我们可以在目前的能力范围之内,可以做一点什么更有意义的行动?推荐阅读《迷信,更应该从心理学角度研究》。

    白天写完上面的文字,晚上突然想,既然没有跟踪每一个数据,如何确认随机数确实是“嫌贫爱富”呢?所以晚上决定开始写跟踪数据,代码如下:

import randomfrom pyecharts import Lines = [100 for i in range(100)] # 一开始人手100元t=[[],[],[],[],[],[],[],[],[],[]]for i in range(200000): # 执行20万次 for id in range(6): t[id].append(s[id])#记录前6个人 for j in range(100): # 模拟100个人每次随机给别人一块钱 x = random.randint(0, 99) # 可以随机给任何一个人 s[j] -= 1 # 假设第j个人随机给别人一块钱 s[x] += 1 # 第j个人的一块钱钱给第x个人attr = [i+1 for i in range(200000)]line = Line("模拟随机给他人一元二十万次的效果", "前6人的财富值变化")for id in range(6): xid=id+1 line.add("第"+str(xid)+"个人的财富变化", attr, t[id])line.render()

本来想模拟10个人的数据,但是太卡了,可能是我电脑太破了,有兴趣的可以自行在电脑里跟踪更多的数据观察规律……6个人运行后的图像如下,一开始并不是特别有规律,也有后来居上的情况,但是整体差距是逐渐发散的。

可视化系列:Python|随机模拟财富流向的可视化编程Python|国家统计局人口数据动态图表可视化Python|国家统计局CPI数据动态图表可视化Python|国家统计局居民人均收入数据动态图表可视化Python|爬取淘宝热卖商品并对数据进行柱形图可视化python的pyecharts绘制各种图表详细(代码)Python绘制六种可视化图表详解,三维图最炫酷!Python|绘制个性化数据的动态图表及解决中文显示问题……Python|绘制动态图表的问题的解决过程看完这篇文章,我彻底爱上了Python动态图表!

Python编程案例|词频云图

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存