Math.round(Math.random()*9+1)的问题,怎么现在才发现...

Math.round(Math.random()*9+1)的问题,怎么现在才发现...

题目
Math.round(Math.random()*9+1)的问题,怎么现在才发现...
用Math.round(Math.random()*9+1) 模拟一亿次.
从左到右依次对应1到10的出现次数的概率分布如下:
5550975,11110994,11109952,11107453,11113482,11106273,11112448,11113637,11113936,5560850
瞧瞧两头.我以前一直都是用的这句代码来产生随机数=.=
后面我又用 Math.ceil(Math.random() * 10)
和 Math.floor(Math.random() * 10+1) 分别模拟了一亿次,概率分布都很正常~
Math.ceil(Math.random() * 10)
9999674,10002663,9992580,9997330,10002808,10003604,9998316,9999602,10002274,10001149
Math.floor(Math.random() * 10+1)
9998578,10000592,9995001,10003015,9999125,10001943,9999776,9999089,10002336,10000545
其实不用模拟一亿次,模拟1000次就可以看出来了.
答案
round()方法通俗的说就是四舍五入,也就是生成的结果在1-1.4.之间就等于1,
1.5-2.4.之间等于2
.
9.5-10之间等于10
所以头尾出现的分布区间只有其他数字的一半,你现在得到的结果很正常
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
最新试题
热门考点

超级试练试题库

© 2017-2019 超级试练试题库,All Rights Reserved.