【Java】Java语言中的随机数方法

Java语言中的随机数方法

 
1、Math.random() 方法:

产生的随机数时 0~1 之间的 double,可以把它乘以一定的数,比如乘以 100 ,它就是 100 以内的随机。(伪随机)

Example Code :

import java.math.*;

public class Demo {
    public static void main(String args[]) {
        // [0,1)
        double test_1 = Math.random();
        
        // [0,10)
        double test_2 = Math.random() * 10;
        
        // [0,100)
        double test_3 = Math.random() * 100;
        
        // [0,100]
        double test_4  = (Math.random() * 100 + 1) % 101;
    }
}

2、java.util.Random

java.util 包里提供 Random 类,可以新建一个 Random 的对象来产生随机数,他可以产生随机 int,随机 float,随机 double,随机 long。

Example Code :

import java.util.random

public class Demo {
    public static void main(String args[]) {
        // 新建 Random 类
        Random random = new Random();
        
        // 设置随机种子,否则随机数为伪随机
        // void setSeed(long seed);
        random.setSeed(1);
        
        // boolean 类型
        boolean bool = random.nextBoolean();
        
        // bytes 类型
        // 生成随机字节并将它们放入用户提供的字节数组中
        // void nextBytes(byte[] bytes);
        byte[] bytes = new byte[100];
        random.nextBytes(bytes);
        
        // double 类型
        // 返回下一个伪随机数,从这个随机数发生器的序列中 0.0和 1.0之间的 double值 0.0分布。
        // double nextDouble();
        double d = random.nextDouble();
        
        // int 类型
        // 返回下一个伪随机数,从这个随机数发生器的序列中均匀分布 int值。
        // int nextInt();
        int i_1 = random.nextInt();
        
        // int 类型  [0,100)
        // 返回伪随机的,均匀分布 int值介于0(含)和指定值(不包括),从该随机数生成器的序列绘制。
        // void int nextInt(int bound)
        int i_2 = random.nextInt(100);
        
        // long 类型
        // 返回下一个伪,均匀分布 long从这个随机数生成器的序列值。
        // long nextLong();
        long l = random.nextLong();
    }
}

 
3、System 类中的 currentTimeMillis() 方法

System 类中有个一 currentTimeMillis() 方法,该方法返回一个从 1970年1月1日0点0分0秒到目前的一个毫秒数,返回类型时 long,可以将它作为一个随机数,对一些数取模,就可以把它限制在一个范围之内。

Example Code :

public class Demo {
    public static void main(String args[]) {
        // 该方法的作用时返回当前计算机时间,一般结合 Date 类和 SimpleDateFormate 类使用
        long currentTime = System.currentTimeMillis();
        System.out.println(currentTime);
        
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy年-MM月dd日-HH时-mm分-ss秒");
        Date date = new Date(currentTime);
        System.out.println(formatter.format(date));
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 方法1 (数据类型)(最小值+Math.random()*(最大值-最小值+1)) 例: (int)(1+Math...
    GB_speak阅读 41,384评论 2 6
  • 本章先讲解Java随机数的几种产生方式,然后通过示例对其进行演示。 广义上讲,Java中的随机数的有三种产生方式:...
    03ca2835cf70阅读 2,713评论 0 0
  • 一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个do...
    努力做一个好人阅读 1,765评论 2 2
  • 回溯算法 回溯法:也称为试探法,它并不考虑问题规模的大小,而是从问题的最明显的最小规模开始逐步求解出可能的答案,并...
    fredal阅读 14,702评论 0 89
  • Java 语言支持的类型分为两类:基本类型和引用类型。整型(byte 1, short 2, int 4, lon...
    xiaogmail阅读 5,209评论 0 10

友情链接更多精彩内容