摘要:欢迎访问我的个人博客前言今天我们来做一个有趣的测试,那就是我们在某个范围之间取随机数时,每项被随机到的概率是否相等。
欢迎访问我的个人博客:http://www.xiaolongwu.cn
前言今天我们来做一个有趣的测试,那就是我们在某个范围之间取随机数时,每项被随机到的概率是否相等。
随机方法我们都知道Math.random()的结果是[0, 1)之间的小数,结果包括0但是不包括1。
那么很简单就会想到Math.random() * n的结果是[0, n)之间的小数,结果包括0但是不包括n。
那么parseInt(Math.random() n)的结果就是[0, n)之间的正整数, parseInt(Math.random() n + 1)的结果就是[1, n+1)之间的正整数。
那么parseInt(Math.random() * (m - n) + n)的结果就是[n, m)之间的正整数。
开始证明我们首先写一个方法,随机7500个在a和b之间的数。
function randomArr(a, b) { var obj = {} for (let i = 0; i < 7500; i++) { const n = parseInt(Math.random() * (b - a) + a); if (!obj[n]) { obj[n] = 1; } else { obj[n] ++; } } console.log(obj) } randomArr(5, 10) randomArr(5, 15) randomArr(5, 20)
结果如下:
由此,我们大致能得出结论,随机数的每项概率基本是相等的;
github资源地址:js基础--测试随机数的概率是否相等
我的CSDN博客地址:https://blog.csdn.net/wxl1555
如果您对我的博客内容有疑惑或质疑的地方,请在下方评论区留言,或邮件给我,共同学习进步。
邮箱:wuxiaolong802@163.com
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/100899.html
摘要:正确的思路是等概率随机只取出共个数,每个数出现的概率也是相等的随机输出把一段代码改成,并增加单元测试。代码本身很简单,即使没学过也能看懂,改后的代码如下但是对于单元测试则仅限于听过的地步,需要用到,好像也有别的模块。 在拉勾上投了十几个公司,大部分都被标记为不合适,有两个给了面试机会,其中一个自己觉得肯定不会去的,也就没有去面试,另一个经历了一轮电话面加一轮现场笔试和面试,在此记录一下...
摘要:生成随机数的方案网上有很多,但是在验证概率的时候却发现不相同先把这种类型的随机正整数生成方式贴出来。 生成随机数的方案网上有很多,但是在验证概率的时候却发现不相同先把这4种类型的随机正整数生成方式贴出来。 ①、// 生成 [n,m),包含n但不包含m的正整数: -- parseInt(Math.random()*(m-n)+n) ②、// 生成(n,m],不包含n但包含m的正整数:...
摘要:另外,这几篇几个不错的随机生成随机数采用对获取的浮点数进行取整操作,也是同样的问题,能取到左端点,却无法取到右端点。 最近在琢磨内置对象Math的时候,参考了很多网上资料,不过我在Google中搜索js 随机整数,出来很多博客文章,很遗憾,在我看来排名靠前的这些文章都是错误的。接下来我将会论证我这一观点,同时把我所理解的Math.random()方法跟你分享。showImg(https...
摘要:在学习过程中,神经网络的突触权重会以一种有序的方式进行修改,从而实现所需的目标。中间单元的数量被称为网络所用的片的数量。 随着神经网络的进化,许多过去曾被认为不可想象的任务现在也能够被完成了。图像识别、语音识别、寻找数据集中的深度关系等任务现在已经变得远远更加简单了。在此向这一领域的杰出的研究者致以真诚的谢意,正是他们的发现和成果帮助我们利用上了神经网络的真正力量。如果你真正对追求机器学习这...
阅读 1192·2021-09-02 13:36
阅读 2685·2019-08-30 15:44
阅读 2922·2019-08-29 15:04
阅读 3152·2019-08-26 13:40
阅读 3613·2019-08-26 13:37
阅读 1142·2019-08-26 12:22
阅读 948·2019-08-26 11:36
阅读 1177·2019-08-26 10:41