博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过SQL解读财富的分配(二)
阅读量:2447 次
发布时间:2019-05-10

本文共 1840 字,大约阅读时间需要 6 分钟。

   之前分析过一篇《》,当时还不过瘾,其实是我还没看到很多自己期望看到的数据,于是后面又做了一些测试,先测试了一版2000万的数据,得到的结果和100的差别不大,本来想来一个全球70亿人的游戏大联欢,但是确实蛮有挑战。

   如果后期还准备玩这个游戏,我就加入更多的数据维度更有意义。

   今天测试的是四个场景,样本基数是1000人,测试100次。

    1)房间里有1000个人,每人都有1元钱,他们在玩一个游戏。每轮游戏中,每个人都要拿出一元钱随机给另一个人,最后这1000个人的财富分布是怎样的?

    2)房间里有1000个人,每人都有1元钱,他们在玩一个游戏。每轮游戏中,每个人都要拿出一元钱随机给另一个人,如果自己手头没有钱,可以每次透支1元钱,最后这1000个人的财富分布是怎样的?

    3)房间里有1000个人,每人都有1000元钱,他们在玩一个游戏。每轮游戏中,每个人都要拿出一元钱随机给另一个人,最后这1000个人的财富分布是怎样的?

   4)房间里有1000个人,每人都有1000元钱,他们在玩一个游戏。每轮游戏中,每个人都要拿出一元钱随机给另一个人,如果自己手头没有钱,可以每次透支1元钱,最后这1000个人的财富分布是怎样的?

   猛一看,好像都差不多,其实数据差别大了去了。

1

   第一个是每次1元的本钱,反复100次,不透支。得到的数据如下,可以看到绝大多数的人都是手里空空,或者原地踏步,能够稍有成就的都是少数,能够出类拔萃的那是极少数。

2

第二个场景是,允许你透支,如果手头没钱,每次透支1元,反反复复100次。

第二组数据的差异化很大,输得最多的人输了近99元,赢得最多的人差不多是79,而中间的比例很明显,赢得14元和输了11元的比例相当,占的比重较高。

3

第三组数据,我们玩大一些,每次1元有些太少了。就来本钱是1000元。每一轮回归1000元,重新开始,试验100轮。

这组数据很有意思,至少不会输得精光。而且从测试结果来看肯定该不会,至少能够有900元在手。而运气好的人,运气也好不到哪里去。最多能够赢得75元,即1075元在手。

这个结果和我的初步想法差距很大,如果以中线1000为界,亏的人还是要多一些。

4

第四组数据更激进些,每个人还是1000的本钱,允许透支,每次1元,反反复复100次。

实验了100次,最少的还是900元,但是比例极低,基本的区间还是在999~1001之间。

但是增幅其实很小,不会有大起大落。

如果要测试脚本,其实很简单,就几行SQL改动一下即可。

变更核心逻辑:

--delete from test_money;

--insert into test_money select level,1  from dual connect by level <=1000;
--commit;
begin
for i in 1..1000 loop
update test_money set money=money-1 where pid=i;
update test_money set money=money+1 where pid=trunc(dbms_random.value(0,1000)) ;
end loop;
end;
/
set pages 200
select money,count(*)from test_money group by money order by money;

前端的调度器和信息汇总

for i in {1..100}

do
sqlplus -s / as sysdba<<EOF
@test.sql
EOF
sqlplus -s / as sysdba <<EOF
set pages 200
insert into test_money_sum select money,count(*)from test_money group by money;
select money,sum(money_cnt)/100 from test_money_sum group by money;
EOF
done

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23718752/viewspace-2143323/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23718752/viewspace-2143323/

你可能感兴趣的文章
小程序视频截gif_3个简单的应用程序,可让您深入视频和GIF
查看>>
如何将世界时钟和时区小部件添加到您的iPhone
查看>>
ruby语法_Ruby函数(方法)语法
查看>>
ubuntu列出所有磁盘_列出Ubuntu上的磁盘空间使用情况
查看>>
如何在Windows 8.1中获取Windows 10样式的开始菜单
查看>>
如何在Instagram上过滤冒犯性评论
查看>>
电台复活节_如何玩Android 11的隐藏复活节彩蛋游戏
查看>>
如何在iPhone或iPad的控制中心中控制智能家居设备
查看>>
从Ubuntu命令行按进程名称杀死进程
查看>>
进程handle获取线程_获取进程中的线程列表
查看>>
在Windows Vista中使用符号链接
查看>>
在Ubuntu Linux中获取上次访问的文件时间
查看>>
短语密码_使用密码短语以提高安全性
查看>>
如何将iPhone应用程序从应用程序库移动到主屏幕
查看>>
如何在YouTube音乐中启用高质量的音频流
查看>>
保存网络文章以供以后使用Instapaper阅读
查看>>
Jolicloud是一款适合上网本的漂亮新操作系统
查看>>
谷歌云使用账号密码_如何使用Google密码检查
查看>>
airpods_如何通过AirPods与其他人共享音乐
查看>>
如何使用VLOOKUP在Google表格中查找数据
查看>>