JS中Math.random()方法的使用总结

news2024/11/15 12:37:41

🔥 前言


Math.random() 这个方法相信大家都知道,是用来生成随机数的。不过一般的参考手册时却没有说明如何用这个方法来生成指定范围内的随机数。下面就来详细的介绍一下Math.random(),以及如何用它来生成制定范围内的随机数。

🔥 Math.random()的介绍


Math.random()方法返回大于等于 0 小于 1 的一个随机数。也就是说,Math.radom()可以获得一个0.0到1.0的随机double值,不包括1.0,即[0.0,1.0)。对于某些站点来说,这个方法非常实用,因为可以利用它来随机显示一些名人名言和新闻事件。

🔥 Math.random()的使用方法


1. 在连续整数中取得一个随机数

值 = Math.floor(Math.random() * 可能值的总数 + 第一个可能的值)
例:产生1-10的随机数

var rand1 = Math.floor(Math.random() * 10 + 1);

编写产生startNumber至endNumber随机数的函数

function selectFrom(startNumber, endNumber) {
    var choice = endNumber - startNumber + 1;
    return Math.floor(Math.random() * choice + startNumber)
}
var rand2 = selectFrom(2,8);//产生2至8的随机数

2. 在不相邻整数中取得一个随机数

2.1 在不相邻的两个整数中取得一个随机数

例:随机产生2或4中的一个数

var rand3 = Math.random() < 0.5 ? 2 : 4;

2.2 在不相邻的多个整数中产生一个随机数

结合函数参数数组,可编写在不相邻的多个整数中产生一个随机值的函数

function selectFromMess() {
    return arguments[Math.floor(Math.random() * arguments.length)]
}
//随机产生1、6、8中的一个数
var rand4 = selectFromMess(1, 6, 8);
//也可随机产生文本
var randomTxt1 = selectFromMess("安慰奖", "二等奖", "一等奖");

每次要输入这么多参数比较麻烦,可以改写一下函数

function selectFromMessArray(arr) {
    return arr[Math.floor(Math.random() * arr.length)]
}
var arrayTxt=["一","二","三","四","五"];
var randTxt2 = selectFromMessArray(arrayTxt);

或者不改变原有方法,可以利用apply()这个方法传递数组参数

var randTxt3 = selectFromMess.apply(null,arrayTxt);

关于apply方法的使用可以看js中apply方法的使用详细解析

🔥 Math.random()小结:


Math.random()的使用方法

场景1:随机生成[0.0,11.0)

// 随机生成[0.0,11.0)
var number = Math.random()*11

场景2:随机生成[10.0,15.0]

// 随机生成[10.0,15.0]
var number = 10.0 + Math.random()*(15-10+1)

场景3:随机生成[10.0,15.0)

// 随机生成[10.0,15.0)
var number = 10.0 + Math.random()*(15-10)

由此,我们可以总结一下Math.random()的使用规律

1、随机产生[0.0,1.0)

Math.random();

2、随机产生[0,M)

Math.random()*M;

3、随机产生[M,N)

m+Math.random()*(n-m);

4、随机产生[M,N]

m+Math.random()*(n-m+1);

即:最小值+Math.random()*(最大值-最小值+1);


🔥 应用案例

点击访问:js+css3全屏满天星2023新年快乐动画特效

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/171176.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

位运算__

异或运算相同为0&#xff0c;不同为1&#xff0c;相当于无进位相加0 ^ N NN ^ N 0异或运算满足交换律和结合律一、打印一个数的二进制题目打印一个数的二进制代码package bitoperation;public class PrintBinary {public static void printBinary(int num) {for (int i 32; …

代码重构之路 --我的2022年总结

2022年是我正式参加工作的第10个年头&#xff0c;也是我在CSDN上写博客的第11个年头。在这10余年的时间里&#xff0c;虽然在工作上遇到了各种情况&#xff0c;但我一直坚持输出、坚持分享&#xff0c;一共在CSDN上发表了530多篇原创博文。在这些文章中&#xff0c;大部分都是与…

论文投稿指南——中文核心期刊推荐(能源与动力工程)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…

一篇五分生信临床模型预测文章代码复现——Figure 4-6 临床模型构建(八)

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…

gateway整合sentinel限流不生效排查

问题 线上的sentinel 在测试压测时候可以正常被限流 但是在正常的流量中 发现被限流的接口很少 &#xff08;我发誓肯定都配置了限流规则&#xff09; 约定 文中的 服务名称以及地址 都被改写了 排查步骤 1.检查相关配置 以及 pom依赖配置 发现SentinelGatewayFilter 重复…

[论文阅读] (26) 基于Excel可视化分析的论文实验图表绘制总结——以电影市场为例

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座&#xff0c;并分享给大家&#xff0c;希望您喜欢。由于作者的英文水平和学术能力不高&#xff0c;需要不断提升&#xff0c;所以还请大家批评指正&#xff0c;非常欢迎大家给我留言评论&#xff0c;学术路上期…

【iOS】—— 内存的五大分区

内存的五大分区 文章目录内存的五大分区五大分区分别是1.栈区优点&#xff1a;2.堆区优点&#xff1a;3.常量区4.静态区5.代码区static、extern、const关键字比较1.static关键字static关键字作用&#xff1a;全局静态变量局部静态变量2.extern全局变量对内的全局变量外部全局变…

25.Isaac教程--Carter机器人

Carter机器人 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html Carter 是一个机器人平台&#xff0c;使用 Segway 的差分底座、用于 3D 范围扫描的 Velodyne P16、ZED 相机、IMU 和 Jetson TX2 作为系统的核心。 与定制安装支架一起&#xff0c;它…

WSL2 Ubuntu+gnome图形界面的安装血泪史(亲测有效)

WSL2 Ubuntugnome图形界面写在最前面&#xff08;血泪史&#xff09;1.wsl2 安装2.Ubuntu安装3.VcXsrv安装与启动4. gnome图形界面的配置5.显卡驱动的升级写在最前面&#xff08;血泪史&#xff09; 前因 近期遇到一个问题&#xff0c;需要在ubuntu虚拟机上用opengl3.3以上的版…

导航相关产品调研

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言1、现有的业务产品2、常做的导航规控业务前言 认知有限&#xff0c;望大家多多包涵&#xff0c;有什么问题也希望能够与大家多…

“水果零售第二股”百果园上市首日市值近百亿

“水果零售第二股”来了&#xff01;今日&#xff08;1月16日&#xff09;&#xff0c;国内最大水果零售商深圳百果园实业&#xff08;集团&#xff09;股份有限公司&#xff08;下称“百果园”&#xff0c;02411.HK&#xff09;正式挂牌港交所。▲图源:百果园官网百果园此次IP…

8.框架Spring

一、基本概念 Spring 是 Java EE 编程领域的一款轻量级的开源框架&#xff0c;由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立&#xff0c;它的目标就是要简化 Java 企业级应用程序的开发难度和周期。 导入依赖&#xff1a; <dependency><groupId>o…

操作系统(一)

操作系统&#xff08;一&#xff09; 1、什么是操作系统 操作系统是指控制和管理整个计算机系统的硬件与软件资源&#xff0c;合理的组织、调度计算机的工作与资源分配&#xff0c;进而为用户和其他软件提供方便接口与环境的程序集合。操作系统是计算机系统中最基本的系统软件…

Android 深入系统完全讲解(24)

https://blog.csdn.net/weixin_41101173/article/details/80374455 理解了绘制内容&#xff0c;解决了这部分&#xff0c;下来我们来说说关于音视频的其他部分。 所有的文件&#xff0c;都有一个叫做格式的东西存在&#xff0c;MP3&#xff0c;WAV&#xff0c;而处理这个格式的…

zookeeper集群安装

zookeeper集群安装 1. 安装环境介绍 下载地址&#xff1a; http://archive.apache.org/dist/zookeeper/ 安装版本&#xff1a; 3.7.0 安装包&#xff1a; apache-zookeeper-3.7.0-bin.tar.gz 安装目录&#xff1a; /opt 机器IP&#xff1a; 10.28.19.107 10.28.19.108 10…

字符矩阵内单词搜索

单词搜索 问题链接&#xff1a;word search&#xff01;&#xff01;&#xff01; 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通…

【阅读笔记】c++ Primer Plus——第九章

内存模型和命名空间 单独编译 c程序分成三部分 第一部分&#xff1a;包含结构声明和使用这些结构的函数原型(头文件)第二部分&#xff1a;包含与结构有关的函数代码(源代码文件)第三部分&#xff1a;包含调用与结构相关的函数代码(源代码文件)头文件包含了用户定义类型的定义…

FPGA 20个例程篇:19.OV7725摄像头实时采集送HDMI显示(二)

第七章 实战项目提升&#xff0c;完善简历 19.OV7725摄像头实时采集送HDMI显示&#xff08;二&#xff09; 在正式介绍OV7725 CMOS Sensor视频采集前&#xff0c;首先需要去详细说明OV7725的寄存器配置接口&#xff0c;这里有OmniVision公司推出的官方手册 “OV7725_software_…

8个必须掌握的Blender拓扑技巧

组合 3D 模型的过程对后续过程影响很大 - 稍后编辑的难易程度、应用光照和着色器时的外观效果如何、动画时变形的难易程度等等。 一个好的模型对于 CG 管道的所有其他部分的良好运行至关重要。 另一方面&#xff0c;凌乱的拓扑结构会使流程的其余部分成为一场灾难。 你能做些…

IB地理科补习有用吗?

IB地理科的补习如何帮助学生改变学科的表现&#xff1f;这可以从几方面来做分析。 1. 训练 第一是训练。我们老师会按来补习的同学的个人需求、时间和个性&#xff0c;提供很多不同程度的训练&#xff0c;帮助他们建立一个正确的能力系统&#xff08;skill set&#xff09;去应…