Math.random()的用法

1.介绍:

Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值

2.使用方法:

例:

在这里插入代码片

例:
【应用场景描述:】
用Math类的random()方法产生一个字符,若该字符是一个大写英文字母,则输入 “Yes!”,否则输出“NO”。
random()方法产生的随机数在0.0和1.0之间,乘以128后,其值在0.0和128.0之间,将它转换为char类型后,用if来判断是否在’A’ 和’Z’之间。

public class IsUpper{
    public static void main(String [] args){
    char ch;
    ch = ( char ) ( Math.random() * 128);
    if ( ch >= 'A' && ch <= 'Z'){
        System.out.println("Yes!");}
    else{
        System.out.println("No!");}
    }
}

3.总结归纳:

//产生一个[0,1)之间的随机数。
Math.random():

//返回指定范围的随机数(m-n之间)的公式:
Math.random()(n-m)+m;
或者
Math.random()
(n+1-m)+m

4.Math类的random()方法

Math类的random()方法可以生成大于等于0.0、小于1.0的double型随机数。

Math.random()方法语句基础上处理可获得多种类型、或任意范围的随机数。

公式:

int num=(int)(Math.random()*n); //返回大于等于0小于n之间的随机数
int num0=m+(int)(Math.randon()*n); //返回大于等于m小于m+n(不包括m+n)之间的随机数
例如:我们需要取2~22之间的偶数

public class MathRandomDemo{
	public static int GetevenNum(double num1,double num2){
		int s=(int)num1+(int)(Math.random()*(num2-num1));
		if(s%2==0){
			return s;
		}
		else
			retuen s+!;
	}
	public static void main(String[] args){
		System.out.println("任意一个"+num1+"~"+num2+"之间的偶数:"+GeteneNum(2,22));
	}
}

还可以随机生成字符

例如:

1.随机生成a~z之间的字符

(char)('a'+Math.random()*('z'-'a'+1));

2.随机生成cha1~cha2的字符

(char)(cha1+Math.random()*(cha2-cha1+1));

5.Random类生成随机数

除了Math类的Random()方法可以获取随机数之外,还可以Java.util.Random类,可以通过实例化一个Random对象创建一个随机数生成器。

1.语法:

Random ran=new Random();
Random类的实例对象以这种形式实例化对象时,Java编译器以系统当前时间作为随机数生成器的种子,因为每时每刻的时间都不可能相同,所以产生的随机数也不同。如果运行速度太快,也会产生两次运行结果相同的随机数。

2.可以在实例化Random类对象时,自定义随机数生成器的种子。
语法:

Random ran=new Random(seedValue);

Random类中还提供各种类型随机数的方法:
nextInt():返回一个随机整数(int)
nextInt(int n):返回大于等于0、小于n的随机整数(int)
nextLong():返回一个随机长整型值(long)
nextBoolean():返回一个随机布尔型值(boolean)
nextFloat():返回一个随机浮点型值(float)
nextDouble():返回一个随机双精度型值(double)
nextGaussian():概率密度为高斯分布的双精度值(double)

import java.util.Random;
public class Demo{
	public static void main(String[] args){
		Random ran=new Random();
		System.out.println("产生一个随机整数:"+ran.nextlnt());
	}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值