通過SQL解讀財富的分配(二)
之前分析過一篇《通過SQL解讀財富的分配》,當時還不過癮,其實是我還沒看到很多自己期望看到的資料,於是後面又做了一些測試,先測試了一版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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 通過SQL解讀財富的分配SQL
- 國民財富總量和國民財富分配與存量結構
- 如何通過微信開發實現財富自由
- 通過錯誤的sql來測試推理sql的解析過程(二)SQL
- Spark SQL 教程: 通過示例瞭解 Spark SQLSparkSQL
- 通過分析SQL語句的執行計劃優化SQL 二SQL優化
- 《財富的帝國》筆記筆記
- 一圖讀懂 | 首信通聯“關愛信用記錄,積累信用財富”知識競賽!
- 通過 sysprocesses 解決Sql死鎖問題SQL
- 一張圖輕鬆解讀《財富》人工智慧萬字長文,關於深度學習的前世今生人工智慧深度學習
- 通過程式找sqlSQL
- 全球億萬富豪們的財富密碼密碼
- 財富管理和資產管理的區別
- 億萬富翁的財富都集中在哪裡?
- 通過錯誤的sql來測試推理sql的解析過程SQL
- 鳳凰財經:中國人財富財調查–資料資訊圖
- SAP RETAIL 通過分配表建立UB STO單據AI
- sqlmap原始碼通讀(二)SQL原始碼
- 財富:2016年美國財富500強公司 蘋果力壓谷歌重回榜首蘋果谷歌
- 《黑客與畫家》的作者如何看待財富?黑客
- 通過10046與tkprof瞭解SQL執行SQL
- 程式設計師副業創富:業餘時間解鎖首筆財富里程碑程式設計師
- 通過pl/sql來格式化sqlSQL
- 宮鬥遊戲,另類財富密碼遊戲密碼
- 【練習題】財富排行榜
- 《財富》:2020年改變世界的53家公司 阿里位列第二阿里
- 通過sql語句分析足彩SQL
- 財富管理走入社會主流 2015年中國財富管理行業研究報告行業
- 一名資料分析師的人生經驗:走過都是財富
- 通過top命令抓取cpu高消耗的sqlSQL
- 阿里上市將展開新造富運動 馬雲財富瞄準百億阿里
- Retrofit原始碼解讀(二)--Retrofit中網路通訊相關原始碼
- 【財富空間】計算機起源的數學思想計算機
- 《財富》:今年CES上的汽車技術看什麼
- 《財富》雜誌:谷歌應用商店Google Play已成第二大營收渠道谷歌Go營收
- Kitex原始碼閱讀——腳手架程式碼是如何通過命令列生成的(二)原始碼命令列
- oracle 通過sql profile為sql語句加hintOracleSQL
- 通過shell和sql結合查詢效能sqlSQL