用 IQ分布模拟图来测试浏览器的性能
Posted duyuanshang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用 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秒计算完毕,估计计算量有几百万至正无穷吧!
下面是结果
想象一下前面有一万人的智商,都是从普通大街上组队无选择随机测的,,,或者你就想象前面是北京西客站,今天是农历年腊月二十五,你有一个特异功能,就是看不见人只能看见智商
那么如果没有毛病,你看到的是这个
*
每个数字代表一个人
(为什么不用颜色来区分呢?因为颜色的分度很小,况且我们九年义务教育出来的谁不对数字过敏呢?)
以上是关于用 IQ分布模拟图来测试浏览器的性能的主要内容,如果未能解决你的问题,请参考以下文章