精华内容
下载资源
问答
  • Java 随机数

    万次阅读 多人点赞 2019-06-08 17:36:43
    本章先讲解Java随机数的几种产生方式,然后通过示例对其进行演示。 广义上讲,Java中的随机数的有三种产生方式: (01). 通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。 (02). 通过Math....

    本章先讲解Java随机数的几种产生方式,然后通过示例对其进行演示。

    广义上讲,Java中的随机数的有三种产生方式
    (01). 通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。
    (02). 通过Math.random()返回一个0到1之间的double值。
    (03). 通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大。


    第1种


    通过System.currentTimeMillis()来获取随机数。实际上是获取当前时间毫秒数,它是long类型。使用方法如下:

    final long l = System.currentTimeMillis();

    若要获取int类型的整数,只需要将上面的结果转行成int类型即可。比如,获取[0, 100)之间的int整数。方法如下:

    final long l = System.currentTimeMillis();
    final int i = (int)( l % 100 );

     

    第2种


    通过Math.random()来获取随机数。实际上,它返回的是0(包含)到1(不包含)之间的double值。使用方法如下:

    final double d = Math.random();

    若要获取int类型的整数,只需要将上面的结果转行成int类型即可。比如,获取[0, 100)之间的int整数。方法如下:

    final double d = Math.random();
    final int i = (int)(d*100);

     

    第3种


    通过Random类来获取随机数。

    使用方法如下:
    (01) 创建Random对象。有两种方法可以创建Random对象,如下:

    Random random = new Random();//默认构造方法
    Random random = new Random(1000);//指定种子数字

    (02) 通过Random对象获取随机数。Random支持的随机值类型包括:boolean, byte, int, long, float, double。
    比如,获取[0, 100)之间的int整数。方法如下:

    int i2 = random.nextInt(100);

     

    Random 的函数接口


    复制代码

    // 构造函数(一): 创建一个新的随机数生成器。 
    Random() 
    // 构造函数(二): 使用单个 long 种子创建一个新随机数生成器: public Random(long seed) { setSeed(seed); } next 方法使用它来保存随机数生成器的状态。
    Random(long seed) 
    
    boolean nextBoolean()         // 返回下一个“boolean类型”伪随机数。 
    void    nextBytes(byte[] buf) // 生成随机字节并将其置于字节数组buf中。 
    double  nextDouble()          // 返回一个“[0.0, 1.0) 之间的double类型”的随机数。 
    float   nextFloat()           // 返回一个“[0.0, 1.0) 之间的float类型”的随机数。 
    int     nextInt()             // 返回下一个“int类型”随机数。 
    int     nextInt(int n)        // 返回一个“[0, n) 之间的int类型”的随机数。 
    long    nextLong()            // 返回下一个“long类型”随机数。 
    synchronized double nextGaussian()   // 返回下一个“double类型”的随机数,它是呈高斯(“正常地”)分布的 double 值,其平均值是 0.0,标准偏差是 1.0。 
    synchronized void setSeed(long seed) // 使用单个 long 种子设置此随机数生成器的种子。

    复制代码

     

    获取随机数示例


    下面通过示例演示上面3种获取随机数的使用方法。
    源码如下(RandomTest.java):

    复制代码

     1 import java.util.Random;
     2 import java.lang.Math;
     3 
     4 /**
     5  * java 的随机数测试程序。共3种获取随机数的方法:
     6  *   (01)、通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。
     7  *   (02)、通过Math.random()返回一个0到1之间的double值。
     8  *   (03)、通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大。
     9  *
    10  * @author skywang
    11  * @email kuiwu-wang@163.com
    12  */
    13 public class RandomTest{
    14 
    15     public static void main(String args[]){
    16 
    17         // 通过System的currentTimeMillis()返回随机数
    18         testSystemTimeMillis();
    19 
    20         // 通过Math的random()返回随机数
    21         testMathRandom();
    22 
    23         // 新建“种子为1000”的Random对象,并通过该种子去测试Random的API
    24         testRandomAPIs(new Random(1000), " 1st Random(1000)");
    25         testRandomAPIs(new Random(1000), " 2nd Random(1000)");
    26         // 新建“默认种子”的Random对象,并通过该种子去测试Random的API
    27         testRandomAPIs(new Random(), " 1st Random()");
    28         testRandomAPIs(new Random(), " 2nd Random()");
    29     }
    30 
    31     /**
    32      * 返回随机数-01:测试System的currentTimeMillis()
    33      */
    34     private static void testSystemTimeMillis() {
    35         // 通过
    36         final long l = System.currentTimeMillis();
    37         // 通过l获取一个[0, 100)之间的整数
    38         final int i = (int)( l % 100 );
    39 
    40         System.out.printf("\n---- System.currentTimeMillis() ----\n l=%s i=%s\n", l, i);
    41     }
    42 
    43 
    44     /**
    45      * 返回随机数-02:测试Math的random()
    46      */
    47     private static void testMathRandom() {
    48         // 通过Math的random()函数返回一个double类型随机数,范围[0.0, 1.0)
    49         final double d = Math.random();
    50         // 通过d获取一个[0, 100)之间的整数
    51         final int i = (int)(d*100);
    52 
    53         System.out.printf("\n---- Math.random() ----\n d=%s i=%s\n", d, i);
    54     }
    55 
    56 
    57     /**
    58      * 返回随机数-03:测试Random的API
    59      */
    60     private static void testRandomAPIs(Random random, String title) {
    61         final int BUFFER_LEN = 5;
    62 
    63         // 获取随机的boolean值
    64         boolean b = random.nextBoolean();
    65         // 获取随机的数组buf[]
    66         byte[] buf = new byte[BUFFER_LEN];
    67         random.nextBytes(buf);
    68         // 获取随机的Double值,范围[0.0, 1.0)
    69         double d = random.nextDouble();
    70         // 获取随机的float值,范围[0.0, 1.0)
    71         float f = random.nextFloat();
    72         // 获取随机的int值
    73         int i1 = random.nextInt();
    74         // 获取随机的[0,100)之间的int值
    75         int i2 = random.nextInt(100);
    76         // 获取随机的高斯分布的double值
    77         double g = random.nextGaussian();
    78         // 获取随机的long值
    79         long l = random.nextLong();
    80 
    81         System.out.printf("\n---- %s ----\nb=%s, d=%s, f=%s, i1=%s, i2=%s, g=%s, l=%s, buf=[",
    82                 title, b, d, f, i1, i2, g, l);
    83         for (byte bt:buf) 
    84             System.out.printf("%s, ", bt);
    85         System.out.println("]");
    86     }
    87 }

    复制代码

     

    展开全文
  • java随机数

    2019-01-09 17:05:38
    在java语言中生成java随机数相对来说比较简单,因为有一个县城的方法可以使用。在Math类中,java语言提供了一个叫做random的方法,通过这个方法可以让系统产生随机数。
  • java 随机数

    2012-12-21 02:00:05
    java 随机数,使用java产生随机数的玩意。
  • Java随机数

    2019-10-09 04:51:49
    Java随机数 Java,随机数 1、 随机数Random类 在创建过程中,若没有传递任何参数则表明使用当前时间作为随机数生成器的种子,并由此在程序每一次执行时都产生不同的输出。 在创建过程中若提供了初始值,则...

    Java随机数

    1、 随机数Random类

    在创建过程中,若没有传递任何参数则表明使用当前时间作为随机数生成器的种子,并由此在程序每一次执行时都产生不同的输出。
    在创建过程中若提供了初始值,则随机数生成器每次的生成相同的随机数序列。所以其输出时可验证的。
    初始化后的Random对象在调用nextInt(int num)等方法时,传递一个参数则设置了随机数的上限(num-1)。下限默认为0。

    转载于:https://www.cnblogs.com/0427mybirthday/p/7668946.html

    展开全文
  • JAVA 随机数

    2021-01-27 22:33:52
    JAVA 随机数 ###07.17_面向对象(学习Math类的随机数功能)(了解) 打开JDK提供的帮助文档学习 A:Math类概述 类包含用于执行基本数学运算的方法 B:Math类特点 由于Math类在java.lang包下,所以不需要导包。 因为它...

    JAVA 随机数

    ###07.17_面向对象(学习Math类的随机数功能)(了解)

    • 打开JDK提供的帮助文档学习
    • A:Math类概述
      • 类包含用于执行基本数学运算的方法
    • B:Math类特点
      • 由于Math类在java.lang包下,所以不需要导包。
      • 因为它的成员全部是静态的,所以私有了构造方法
    • C:获取随机数的方法
      • public static double random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
    • D:我要获取一个1-100之间的随机数,肿么办?
      • int number = (int)(Math.random()*100)+1;
    展开全文
  • JAVA随机数

    2013-06-29 13:50:58
    JAVA语言中,随机数的简单练习,主要应用radom的函数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,149
精华内容 4,459
关键字:

java随机数

java 订阅