规则绝对公平时,社会财富的流向谁?

38 篇文章 2 订阅
32 篇文章 9 订阅

从知乎有一个很有趣的问题:房间里有100个人,每人都有100元钱,如果每过一分钟,每个人都要拿出一元钱随机给另一个人,最后这100个人的财富分布是怎样的?
这里写图片描述
这个问题,可以看成一个小型实验,模拟的是规则绝对公平时,社会财富的流向。财富随机流动的话,贫富差距是否就会消失呢?
城市数据团用程序模拟了这个过程:
这里写图片描述
这里写图片描述
就这样,80%的钱跑进了20%的口袋里。即使在最公平的规则下,世界依然展现出了残酷的一面。
更何况,真实的财富流动并不随机。

有个段子是这么说的:
我告诉你一个一年稳赚两百万的办法……往银行里存一个亿定期,一年稳赚两百万。
笑话归笑话,事实也确实如此,原始资本往往是积累财富最有效的方式之一。

关于关于允许负债,富二代财富积累,低保+税收下的实验结果请访问原文作者:http://www.sohu.com/a/159059809_167388

当然知乎上另有高人对原文作者提出了异议:这篇文章犯了一大堆概率论经典错误。他算的那个正态分布是每个个体手上的钱,原文算的是群体排序后的财富分布,根本就不是在算同一个东西。。。请访问:https://www.zhihu.com/pin/877873289857478656

自己写了个代码(不允许负债):

#include<iostream>
#include<ctime>
#include<stdlib.h>
#include<algorithm>
#include<cstdio>

using namespace std;

int main()
{
    int population=0,total=0,individual=0,generation=0,figure=0,temp=0;
    cout<<"人数:";
    cin>>population;
    cout<<"初始每人拥有的资产:";
    cin>>individual;
    cout<<"迭代次数:";
    cin>>generation;
    cout<<"每一代交换金额:";
    cin>>figure;
    total=population*individual;
    cout<<"社会财富总量:"<<total<<endl;
    cout<<"start"<<endl;
    srand((unsigned)time(NULL));
    int *num=new int[population];
    for(int i=0;i<population;i++)num[i]=individual;
    while(generation>0){
        for(int i=0;i<population;i++){
            if(num[i]>0){
                num[i]-=figure;
                temp=rand()%population;
                num[temp]+=figure;
            }
        }
        generation--;
    }
    total=0;
    for(int i=0;i<population;i++)total+=num[i];
    cout<<"社会财富总量:"<<total<<endl;
    cout<<"每个人的资产"<<endl;
    sort(num,num+population);
    for(int i=0;i<population;i++){
        if((i)%10==0)cout<<endl;
        printf("%5d",num[i]);
    }
    return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值