Java中随机数

Java中随机数    在Java中主要提供了两种方式产生随机数,分别为调用Math类的random()方法和Random类提供的产生各种数据类型随机数的方法。1.Math.random()方法这个方法默认生成大于等于0.0且小于1.0的double型随机数,即0<=Math.random()<1.0。虽然Math.random()方法只可以产生0~1之间的double型数字,其实…

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

        在Java中主要提供了两种方式产生随机数,分别为调用Math类的random()方法和Random类提供的产生各种数据类型随机数的方法。

1.Math.random()方法

这个方法默认生成大于等于0.0且小于1.0的double型随机数,即0<=Math.random()<1.0。

虽然Math.random()方法只可以产生0~1之间的double型数字,其实只要在Math.random()语句上稍加处理,就可以使用这个方法产生任意范围的随机数,如:

(int)(Math.random()*n)—–>返回大于等于0且小于n的整数

  m+(int)(Math.random()*n)—–>返回大于等于m且小于m+n(不包括m+n)的随机数

Java中随机数

使用Math类的random()方法也可以随机生成字符,可以使用如下代码生成a~z之间的字符:

(char)(‘a’+Math.random()*(‘z’-‘a’+1));      //加1是因为要取到z

Java中随机数

2.Random类

(1)除了Math类中的random()方法可以获取随机数之外,Java中还提供了一种可以获取随机数的方式,那就是java.util.Random类。可以通过实例化一个Random对象创建一个随机数生成器。

Random r=new Random();

以这种方式实例化对象时,Java编译器以系统当前时间作为随机数生成器的种子,因为每时每刻的时间不可能相同,所以产生的随机数将不同,但是如果运行速度太快,也会产生两次运行结果相同的随机数。

(2)同时也可以在实例化Random类对象时,设置随机数生成器的种子。

Random r=new Random(seedValue);

在Random类中提供了获取各种数据类型随机数的方法,下面列举几个常用的方法:

        public int nextInt(): 返回一个随机整数
		public int nextInt(int n): 返回大于等于0且小于n的随机整数
		public long nextLong(): 返回一个随机长整型值
		public boolean nextBoolean(): 返回一个随机布尔型值
		public float nextFloat(): 返回一个随机浮点型值
		public double nextDouble(): 返回一个随机双精度型值
		public double nextGaussian(): 返回一个概率密度为高斯分布的双精度值

Java中随机数

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

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


相关推荐

  • MySQL存储过程(PROCEDURE)(一)「建议收藏」

    MySQL存储过程(PROCEDURE)(一)「建议收藏」一、定义与目的:定义:存储过程是数据库SQL语言层面的代码封装与重用(是数据库中存储复杂程序,以便外部程序调用的一种数据库对象);目的:我们为了完成特定功能的SQL语句集,经编译创建并保存在数

    2022年7月2日
    33
  • 数据库端口号怎么修改_sqlserver查看sa密码

    数据库端口号怎么修改_sqlserver查看sa密码sqlserver端口如果出现问题,会直接影响sqlserver的登录,下面就教您sqlserver端口的更改方法,供您参考,让您不再为sqlserver端口问题而头疼。今天遇到一个问题,sqlserver无法登陆,到Services里看,服务没有起来。但是在启动Service时遇到问题说无法启动。去AdministrativeTools->EventViewer中查看了一下,…

    2022年8月31日
    3
  • 焦点科技怎么老是招人_合肥新站区工业数字化转型怎么申报_合肥昊邦信息科技…

    焦点科技怎么老是招人_合肥新站区工业数字化转型怎么申报_合肥昊邦信息科技…首页>新闻中心发布时间:2020-11-1310:50:51 导读:合肥昊邦信息科技为您提供合肥新站区工业数字化转型怎么申报的相关知识与详情:BlueData的软件提供了一种基于容器的方法,用于在裸机,云或混合平台上启动和管理Hadoop,Spark和其他环境。注意已经正式删除了,且很多API都已经并入Keras中,所以整个代码有一种浓厚的Keras风格。我强烈建议已…

    2022年5月3日
    47
  • MyBatis快速入门第八讲——MyBatis逆向工程自动生成代码

    MyBatis快速入门第八讲——MyBatis逆向工程自动生成代码MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码什么是逆向工程MyBatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需要的代码(包括mapper.xml、mapper.java、po..)。一般在开发中,常用的逆向工程方式是通过数据库的表生成代码。使用逆向工程

    2022年6月19日
    41
  • vue页面缓存问题_vue项目自动打开浏览器设置

    vue页面缓存问题_vue项目自动打开浏览器设置目录1.什么是浏览器缓存2.浏览器缓存类型:3.浏览器缓存的优势与劣势:4.浏览器缓存机制5.如何清除浏览器缓存在代码更新发布后,都会要求运营人员在访问网址时清除下本地缓存,防止万一掉坑那问题就来了:每次清缓存很麻烦,怎样就不需要他们每次去手动清缓存呢?1.什么是浏览器缓存浏览器缓存(BrowserCaching)是为了节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页

    2022年10月20日
    1
  • 微信小程序后端开发流程_微信小程序开发入门

    微信小程序后端开发流程_微信小程序开发入门微信小程序开发流程记录一、代码处理(一)微信小程序(前端显示)微信小程序项目的架构部分特点说明(二)后台服务器(数据交互)需要的环境特别注意二、项目部署(一)Wampserver的设置(二)域名的获取(三)小程序官方网站上的设置一、代码处理最近一大学同窗开了家自习室,需要一个自习室的预约微信小程序,又恰好手上没有什么代码项目在写,本着少一事不如多一事的原则,尝试了第一次的微信小程序开发。白天要上班,只能利用晚上时间编写,反正他也不着急开业,于是前前后后用了大概半个月的时间,故做记录。刚开始写,确实没什

    2022年9月2日
    8

发表回复

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

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