Java 随机数产生 Random和Math 解决

简介: Java 随机数产生 Random和Math 解决

ઇଓ 欢迎来阅读子豪的博客(Java语法篇)


☾ ⋆有什么宝贵的意见或建议可以在留言区留言


ღღ欢迎 素质三连 点赞 关注 收藏


❣ฅ码云仓库:补集王子 (YZH_skr) - Gitee.com


Random


Random 类诞生于 JDK 1.0,它产生的随机数是伪随机数,也就是有规则的随机数。Random 使用的随机算法为 linear congruential pseudorandom number generator (LGC) 线性同余法伪随机数。在随机数生成时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。


Random 对象在种子数相同的情况下,相同次数生成的随机数是相同的。比如两个种子数相同的 Random 对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。默认情况下 new Random() 使用的是当前纳秒时间作为种子数的。


执行效率比较高,生成的速度比较快,每次基于


18ba725f724442b3a3c2a9bcd6795d07.png


运用包


import java.util.Random;


0~100


import java.util.Random;
public class test {
    public static void main(String[] args) {
        Random random = new Random();
        int rannum = random.nextInt(101);   // [0,101) ---> [0,100]
    }
}


1~100


import java.util.Random;
public class test {
    public static void main(String[] args) {
        Random random = new Random();
        int rannum = random.nextInt(100)+1;   // [1,101) ---> [1,100]
    }
}


50~100


import java.util.Random;
public class test {
    public static void main(String[] args) {
        Random random = new Random();
        int rannum = random.nextInt(51)+50;   // [50,101) ---> [50,100]
    }
}


Math


Math 类诞生于 JDK 1.0,它里面包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数,当然它里面也包含了生成随机数的静态方法 Math.random() ,此方法会产生一个 0 到 1 的 double 值,如下代码所示。


    public static void main(String[] args) {
    double number1 = Math.random();  //生成小数 0~1
    int number2 = (int) (Math.random() * 100);  // 0~100
    System.out.println("生成随机小数:" + number1);
    System.out.println("生成随机整数:" + number2);
相关文章
|
6天前
|
Java
Java产生随机数
Java产生随机数
49 0
|
6天前
|
Java
java_键盘录入、随机数
本文介绍了Java中键盘录入和Random类的使用。键盘录入用于从用户那里获取数据,通过导入`java.util.Scanner`,创建`Scanner`对象,调用`nextInt()`或`nextDouble()`读取整数和小数,`next()`读取字符串。Random类用于生成随机整数,导入该类后创建对象,调用`nextInt(int bound)`生成[0, bound-1]范围内的随机数。在JDK17及以上版本,可以使用`nextInt(int start, int end)`生成[start, end)范围的随机数。常见应用包括猜数字游戏和随机点名。
17 0
|
6天前
|
Java 编译器
Java Number & Math 类
4月更文挑战第12天
|
6天前
|
Java
Java Number & Math 类
Java Number & Math 类
|
6天前
|
Java
Java——Math、BigInteger和Random类
Java——Math、BigInteger和Random类
18 0
|
6天前
|
Java
Java Number & Math 类
Java Number & Math 类
9 0
|
6天前
|
Java 编译器
【Java从入门到精通】Java Number & Math 类
【Java从入门到精通】Java Number & Math 类
24 0
|
6天前
|
存储 Java
35、Java 中的 Math 类、Random 随机数、UUID、格式化字符串或数字、字符串和数字的相互转换、高精度计算、BigDecimal、计算机中的浮点数都是近似值
35、Java 中的 Math 类、Random 随机数、UUID、格式化字符串或数字、字符串和数字的相互转换、高精度计算、BigDecimal、计算机中的浮点数都是近似值
52 0
|
1天前
|
安全 Java 程序员
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第20天】本文将深入探讨Java并发编程的核心概念,包括线程安全和性能优化。我们将详细解析synchronized关键字、ReentrantLock类以及java.util.concurrent包中的高级工具类,如Semaphore、CountDownLatch和CyclicBarrier等。通过实例演示如何使用这些工具来提高多线程程序的性能和可靠性。
|
1天前
|
安全 算法 Java
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第20天】 在多核处理器日益普及的今天,并发编程成为了软件开发中不可忽视的重要话题。Java语言提供了丰富的并发工具和机制来帮助开发者构建高效且线程安全的应用程序。本文将探讨Java并发的核心概念,包括线程同步、锁机制、以及如何通过这些工具实现性能优化。我们将透过实例分析,揭示并发编程中的常见问题,并展示如何利用现代Java API来解决这些问题。