用 IQ分佈模擬圖來測試瀏覽器的效能
今天天氣太涼快,跟這個日曆上屬於夏天的那一頁顯得格格不入!就連我我床下那臺廢棄的ThinkPad,居然也十分透涼氣,那外殼連我的體溫高都沒有,於是,我就開始想一個方法,讓我那個廢棄的電腦發熱,順便用它提出一個我認為有必要出現的概念。一個統計學上的概念,-----> 讓人理解一個概率分佈的真正在現實中的表現。
首先,你肯定聽說過智商吧!以坊間流傳的標準,智商的分佈如下圖所示
但我一直覺得這圖對普通大眾,對學生,甚至對任何人都不友好!
為什麼怎麼說呢?
你知道智商的分佈理論上是這個樣子,你也知道這或許就是智商資料的最真實的感受了,但你總是感覺缺點什麼。首先智商吸引力da嗎?雖然智商這個東西在醫學界基本是一種玄學狀態,但在民間,智商一直可是很有吸引力的!因為 人人都希望自己聰明,也都想知道自己的智商在人群中是什麼樣的一種地位,雖然人都耳如目睹那個140智商的人在人群中1/100,可是即使知道這些,還是難以想象一堆人裡,這140是怎麼分佈的。
就像身高一樣!!!
於是我就想模擬一大群人,把各自的智商寫下來,然後收集起來集中展示,這樣就能看到在一大群人中,智商就是是怎麼分佈的。
我們已有資料,然後就是求比例。
因為是正態分佈,很好求的,在Excel裡一代,就出來了。我模擬的是一萬人裡每個智商的人的數目。
解讀:左邊是智商分數,右邊是對應的人數,比如左邊的76,右邊是81,那就說明智商76的在一萬人裡理論上有81位。
我們可以發現,根據理論,一萬人裡智商最高的是156,最低的是44 (我™才167的智商居然還數不到!),,,那麼就該寫程式了。好在我敲程式碼一向很謹慎,所以就選了一個語言不那麼講究的js指令碼來執行程式提高成功率和效率,當然也是因為我的破電腦裡什麼環境都沒搭建。
JS好啊,有瀏覽器就能寫程式,而且還賊正兒八經!!!
程式碼如下
<script> var thelenght = 10000; var temp = new Array(); function thecs(){ //臨時的,賦值 //0 for (var i =0,k=44;i<1;i++) { temp.push(k); } for (var i =0,k=45;i<1;i++) { temp.push(k); } for (var i =0,k=46;i<1;i++) { temp.push(k); } for (var i =0,k=47;i<1;i++) { temp.push(k); } for (var i =0,k=48;i<1;i++) { temp.push(k); } for (var i =0,k=49;i<2;i++) { temp.push(k); } for (var i =0,k=50;i<2;i++) { temp.push(k); } for (var i =0,k=51;i<2;i++) { temp.push(k); } for (var i =0,k=52;i<3;i++) { temp.push(k); } for (var i =0,k=53;i<3;i++) { temp.push(k); } //10 for (var i =0,k=54;i<4;i++) { temp.push(k); } for (var i =0,k=55;i<5;i++) { temp.push(k); } for (var i =0,k=56;i<6;i++) { temp.push(k); } for (var i =0,k=57;i<7;i++) { temp.push(k); } for (var i =0,k=58;i<8;i++) { temp.push(k); } for (var i =0,k=59;i<9;i++) { temp.push(k); } for (var i =0,k=60;i<11;i++) { temp.push(k); } for (var i =0,k=61;i<13;i++) { temp.push(k); } for (var i =0,k=62;i<15;i++) { temp.push(k); } for (var i =0,k=63;i<17;i++) { temp.push(k); } /////////////////////////////////////////////////////////////////// //20 for (var i =0,k=64;i<20;i++) { temp.push(k); } for (var i =0,k=65;i<23;i++) { temp.push(k); } for (var i =0,k=66;i<26;i++) { temp.push(k); } for (var i =0,k=67;i<30;i++) { temp.push(k); } for (var i =0,k=68;i<34;i++) { temp.push(k); } for (var i =0,k=69;i<38;i++) { temp.push(k); } for (var i =0,k=70;i<43;i++) { temp.push(k); } for (var i =0,k=71;i<48;i++) { temp.push(k); } for (var i =0,k=72;i<54;i++) { temp.push(k); } for (var i =0,k=73;i<60;i++) { temp.push(k); } /////////////////////////////////////////////////////////////////// //30 for (var i =0,k=74;i<67;i++) { temp.push(k); } for (var i =0,k=75;i<74;i++) { temp.push(k); } for (var i =0,k=76;i<81;i++) { temp.push(k); } for (var i =0,k=77;i<89;i++) { temp.push(k); } for (var i =0,k=78;i<97;i++) { temp.push(k); } for (var i =0,k=79;i<105;i++) { temp.push(k); } for (var i =0,k=80;i<114;i++) { temp.push(k); } for (var i =0,k=81;i<123;i++) { temp.push(k); } for (var i =0,k=82;i<132;i++) { temp.push(k); } for (var i =0,k=83;i<142;i++) { temp.push(k); } /////////////////////////////////////////////////////////////////// //40 for (var i =0,k=84;i<151;i++) { temp.push(k); } for (var i =0,k=85;i<161;i++) { temp.push(k); } for (var i =0,k=86;i<170;i++) { temp.push(k); } for (var i =0,k=87;i<179;i++) { temp.push(k); } for (var i =0,k=88;i<188;i++) { temp.push(k); } for (var i =0,k=89;i<197;i++) { temp.push(k); } for (var i =0,k=90;i<205;i++) { temp.push(k); } for (var i =0,k=91;i<213;i++) { temp.push(k); } for (var i =0,k=92;i<220;i++) { temp.push(k); } for (var i =0,k=93;i<227;i++) { temp.push(k); } /////////////////////////////////////////////////////////////////// //50 for (var i =0,k=94;i<232;i++) { temp.push(k); } for (var i =0,k=95;i<237;i++) { temp.push(k); } for (var i =0,k=96;i<242;i++) { temp.push(k); } for (var i =0,k=97;i<245;i++) { temp.push(k); } for (var i =0,k=98;i<247;i++) { temp.push(k); } for (var i =0,k=99;i<249;i++) { temp.push(k); } for (var i =0,k=100;i<249;i++) { temp.push(k); } for (var i =0,k=101;i<249;i++) { temp.push(k); } for (var i =0,k=102;i<247;i++) { temp.push(k); } for (var i =0,k=103;i<245;i++) { temp.push(k); } /////////////////////////////////////////////////////////////////// //60 for (var i =0,k=104;i<242;i++) { temp.push(k); } for (var i =0,k=105;i<237;i++) { temp.push(k); } for (var i =0,k=106;i<232;i++) { temp.push(k); } for (var i =0,k=107;i<227;i++) { temp.push(k); } for (var i =0,k=108;i<220;i++) { temp.push(k); } for (var i =0,k=109;i<213;i++) { temp.push(k); } for (var i =0,k=110;i<205;i++) { temp.push(k); } for (var i =0,k=111;i<197;i++) { temp.push(k); } for (var i =0,k=112;i<188;i++) { temp.push(k); } for (var i =0,k=113;i<179;i++) { temp.push(k); } /////////////////////////////////////////////////////////////////// //70 for (var i =0,k=114;i<170;i++) { temp.push(k); } for (var i =0,k=115;i<161;i++) { temp.push(k); } for (var i =0,k=116;i<151;i++) { temp.push(k); } for (var i =0,k=117;i<142;i++) { temp.push(k); } for (var i =0,k=118;i<132;i++) { temp.push(k); } for (var i =0,k=119;i<123;i++) { temp.push(k); } for (var i =0,k=120;i<114;i++) { temp.push(k); } for (var i =0,k=121;i<105;i++) { temp.push(k); } for (var i =0,k=122;i<97;i++) { temp.push(k); } for (var i =0,k=123;i<89;i++) { temp.push(k); } /////////////////////////////////////////////////////////////////// //80 for (var i =0,k=124;i<81;i++) { temp.push(k); } for (var i =0,k=125;i<74;i++) { temp.push(k); } for (var i =0,k=126;i<67;i++) { temp.push(k); } for (var i =0,k=127;i<60;i++) { temp.push(k); } for (var i =0,k=128;i<54;i++) { temp.push(k); } for (var i =0,k=129;i<48;i++) { temp.push(k); } for (var i =0,k=130;i<43;i++) { temp.push(k); } for (var i =0,k=131;i<38;i++) { temp.push(k); } for (var i =0,k=132;i<34;i++) { temp.push(k); } for (var i =0,k=133;i<30;i++) { temp.push(k); } /////////////////////////////////////////////////////////////////// //90 for (var i =0,k=134;i<26;i++) { temp.push(k); } for (var i =0,k=135;i<23;i++) { temp.push(k); } for (var i =0,k=136;i<20;i++) { temp.push(k); } for (var i =0,k=137;i<17;i++) { temp.push(k); } for (var i =0,k=138;i<15;i++) { temp.push(k); } for (var i =0,k=139;i<13;i++) { temp.push(k); } for (var i =0,k=140;i<11;i++) { temp.push(k); } for (var i =0,k=141;i<9;i++) { temp.push(k); } for (var i =0,k=142;i<8;i++) { temp.push(k); } for (var i =0,k=143;i<7;i++) { temp.push(k); } /////////////////////////////////////////////////////////////////// //100 for (var i =0,k=144;i<6;i++) { temp.push(k); } for (var i =0,k=145;i<5;i++) { temp.push(k); } for (var i =0,k=146;i<4;i++) { temp.push(k); } for (var i =0,k=147;i<3;i++) { temp.push(k); } for (var i =0,k=148;i<3;i++) { temp.push(k); } for (var i =0,k=149;i<2;i++) { temp.push(k); } for (var i =0,k=150;i<2;i++) { temp.push(k); } for (var i =0,k=151;i<2;i++) { temp.push(k); } for (var i =0,k=152;i<1;i++) { temp.push(k); } for (var i =0,k=153;i<1;i++) { temp.push(k); } /////////////////////////////////////////////////////////////////// //110 for (var i =0,k=154;i<1;i++) { temp.push(k); } for (var i =0,k=155;i<1;i++) { temp.push(k); } for (var i =0,k=156;i<1;i++) { temp.push(k); } sjpl(temp); } function sjpl(thearray) { //隨機排列 for (var i =0;i<thelenght;i++) { var k=Math.floor(Math.random()*thelenght); var k2=Math.floor(Math.random()*thelenght); while(k==k2) { k2=Math.floor(Math.random()*thelenght); } var linshi=thearray[k]; thearray[k]=thearray[k2]; thearray[k2]=linshi; } for (var i =0;i<thelenght;i++) { if((i+1)%40==0){ document.getElementById("logs").innerHTML+=(thearray[i] + "<br>第"+((i+1)/40 +1)+"行"); }else { document.getElementById("logs").innerHTML+=(thearray[i] + " "); } } } </script> <body onload="thecs()"> <div id="logs"></div> </body>
中間那麼長的for賦值軍隊是我用巨集錄製寫的,一分鐘就完成了,怎麼操作就不解釋了,玩計算機的基礎知識!
然後這個程式沒有太多研究優化演算法,就一個簡單的隨機排列和扔箱子理論,所以執行起來相當耗電,耗C,GPU!
當然我的目的是讓電腦發熱
瀏覽器,總共用了42秒計算完畢,估計計算量有幾百萬至正無窮吧!
下面是結果
想象一下前面有一萬人的智商,都是從普通大街上組隊無選擇隨機測的,,,或者你就想象前面是北京西客站,今天是農曆年臘月二十五,你有一個特異功能,就是看不見人只能看見智商
那麼如果沒有毛病,你看到的是這個
*
每個數字代表一個人
(為什麼不用顏色來區分呢?因為顏色的分度很小,況且我們九年義務教育出來的誰不對數字過敏呢?)
&n