JS生成随机数的算法

JS生成随机数的算法关于随机数的过程解释:1>.Math.random()表示生成[0,1)的数,所以Math.random()*5生成的都是[0,4]的随机整数。2>Math.floor(num);参数num为一个数值,函数结果为num的整数部分。3>.Math.round(num);参数num为一个数值,函数结果为num四舍五入后的整数。4>.Math.cei…

大家好,又见面了,我是你们的朋友全栈君。

关于随机数的过程解释:

1>. Math.random() 表示生成 [0,1) 的数,所以 Math.random()*5 生成的都是 [0,4] 的随机整数。
2>Math.floor(num); 参数num为一个数值,函数结果为num的整数部分。
3>.Math.round(num); 参数num为一个数值,函数结果为num四舍五入后的整数。
4>.Math.ceil(n); 返回大于等于n的最小整数。
5>.random()%51+13我们可以看成两部分:rand()%51是产生 0~50 的随机数,后面+13保证 a 最小只能是 13,最大就是 50+13=63。

生成一定范围内的随机数

比如生成【m,n】范围类的整数。
在 js 生成验证码或者随机选中一个选项时很有用。代码如下:

//生成从minNum到maxNum的随机数
function randomNum(minNum,maxNum){ 
    
    switch(arguments.length){ 
    
        case 1: 
            return parseInt(Math.random()*minNum+1,10); 
        break; 
        case 2: 
            return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10); 
        break; 
            default: 
                return 0; 
            break; 
    } 
} 

生成 [1,max] 的随机数,公式如下:

// max - 期望的最大值
parseInt(Math.random()*max,10)+1;
Math.floor(Math.random()*max)+1;
Math.ceil(Math.random()*max);

生成 [0,max] 到任意数的随机数,公式如下:

// max - 期望的最大值
parseInt(Math.random()*(max+1),10);
Math.floor(Math.random()*(max+1));

生成 [min,max] 的随机数,公式如下:

// max - 期望的最大值
// min - 期望的最小值
parseInt(Math.random()*(max-min+1)+min,10);
Math.floor(Math.random()*(max-min+1)+min);
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159157.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • docker重启后镜像消失_u盘安装iso原版镜像

    docker重启后镜像消失_u盘安装iso原版镜像一、问题引入根据镜像启动容器,执行命令如下:dockerrun–namemycentos-dcentos,通过dockerps查看正在运行中容器,缺找不到mycentos容器。再次通过dockerps-a查看发现,mycentos容器已经处于停止状态了。二、原因Docker容器后台运行,就必须有一个前台进程.容器运行的命令如果不是那些一直挂起的命令(eg.运行…

    2022年9月22日
    1
  • 安卓手机4g网络慢如何设置(手机连接4g却不能上网)

    5G时代即将来临为啥,我还要写这篇文章呢?5G想要普及还要再等多一段时间,目前4G还是我们使用网络的主流,所以我今天我来关爱一下我们的4G网络。先来了解一下4G的标准网速,按照4G技术标准,静态、行人的网络速率125MB/s(1Gbps)、高速移动状态下125KB/s才算得上4G。然后对照一下自己的手机网速,你会发现在我们日常生活中我们的网速往往达不到这个所谓标准,是不是说4G就骗我们…

    2022年4月15日
    203
  • 使用sp_executesql存储过程执行动态SQL查询

    使用sp_executesql存储过程执行动态SQL查询Thesp_executesqlstoredprocedureisusedtoexecutedynamicSQLqueriesinSQLServer.AdynamicSQLqueryisaqueryinstringformat.ThereareseveralscenarioswhereyouhaveanSQLq…

    2022年5月21日
    29
  • bindService与startService区别

    bindService与startService区别1.StartedService中使用startService()方法来进行方法的调用,调用者和服务之间没有联系,即使调用者退出了,服务依然在进行【onCreate()->onStart

    2022年7月3日
    22
  • 557 原型prototype和原型链__proto__:原理,函数的三种角色,for in,手写new

    557 原型prototype和原型链__proto__:原理,函数的三种角色,for in,手写new向对象底层运行机制的三句话*面向对象底层运行机制的三句话:*1.每一个函数(普通函数、内置类/构造函数、自定义类/构造函数)都具备一个属性:prototype[原型],属性值是一个对象[浏览

    2022年7月3日
    17
  • pycharm2022.01.13专业版注册激活-激活码分享

    (pycharm2022.01.13专业版注册激活)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~747E…

    2022年3月31日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号