Java数字处理类--Math类--随机数-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

1. 生成随机数方法

        1.1 Math.random()方法

        1.2 Random类

2. Math.random()方法

        2.1 Math.random():产生0~1之间的double型随机数

package MathInfo;

public class MathRandom {
    //定义产生偶数的公式int num = (int) num1 + (int) (Math.random() * (num2 - num1));
    public static int GetEvenNum(double num1, double num2) {
        int num = (int) num1 + (int) (Math.random() * (num2 - num1));
        if (num % 2 == 0) {
            return num;
        } else {
            return num + 1;
        }
    }

    public static void main(String[] args) {
        System.out.println("返回任意一个2~32之间的偶数" + GetEvenNum(2, 32));
    }
}

输出
        返回任意一个2~32之间的偶数20

        2.2 (char)(char1+Math.random()*(char2-char1+1)) 产生char1~char2之间的任意字符

(char)('a'+Math.random()*('z'-'a'=1)):产生a~z之间的字符

package MathInfo;

public class MathRandomChar {
    public static char GetRandomChar(char char1, char char2) {
        char randomChar = (char) (char1 + Math.random() * (char2 - char1));
        return randomChar;
    }

    public static void main(String[] args) {
        System.out.println("随机生成a~h间的任意字符" + GetRandomChar('a', 'h'));
        System.out.println("随机生成a~h间的任意字符" + GetRandomChar('0', '5'));
    }
}

输出
        随机生成a~h间的任意字符a
        随机生成a~h间的任意字符4

3.Random类

        Java中的java.util.Random类通过实例化一个Random对象可以创建一个随机数生成器。本质都是通过时间作为随机数生成器的种子所以运行太快了也可能两次运行生成相同的随机数。

语法如下

        Random r = new Random(seedValue);

        3.1 返回一个随机整数

                Random.nextInt()

        3.2 返回一个大于0且小于n的随机整数

                Random.nextInt(int n)

        3.3 返回一个随机长整型值

                Random.nextLong()

        3.4 返回一个随机布尔型值

                Random.nextBoolean()

        3.5 返回一个随机浮点型值

                Random.nextFloat()

        3.6 返回一个随机双精度型值

                Random.nextDouble()

        3.7 返回一个概率密度为高斯分布的双精度值

                Random.nextGaussian()

package MathInfo;

import java.util.Random;

public class RandomDemo {
    public static void main(String[] args) {
        Random r = new Random();
        System.out.println("随机产生一个整数" + r.nextInt());
        System.out.println("随机产生一个大于0小于10的整数" + r.nextInt(10));
        System.out.println("随机产生一个布尔型的值" + r.nextBoolean());
        System.out.println("随机产生一个双精度型的值" + r.nextDouble());
        System.out.println("随机产生一个浮点型的值" + r.nextFloat());
        System.out.println("随机产生一个概率密度为高斯分布的双精度的值" + r.nextGaussian());
    }
}

输出
        随机产生一个整数921826330
        随机产生一个大于0小于10的整数8
        随机产生一个布尔型的值false
        随机产生一个双精度型的值0.11863251566741406
        随机产生一个浮点型的值0.035497546
        随机产生一个概率密度为高斯分布的双精度的值0.2351924571786877
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Java