zoukankan      html  css  js  c++  java
  • 学习记录 java随机数的产生机制

    java 随机数

    一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有。

    二.在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long,这个也是我们在j2me的程序里经常用的一个取随机数的方法。

    三.在我们的System类中有一个currentTimeMillis()方法,这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内啦

    在java中,我们可以通过两种方式来获取随机数(generating a random number)一种是大家熟悉的java.lang.Math.Random()静态方法,另一种是创建java.util.Random对象。下面是两种方法的使用过程:

    1.java.lang.Math.random()
        在使用这一静态方法的时候,我们不需要import任何包,因为java.lang.*包是默认载入的,下面举例说面使用方法:
    1 double i=Math.random();//random()会自动产生一个0.0-1.0的双精度随机数
    2         System.out.println(i);//输出
    3         System.out.println();
    4         i=Math.random()*1000;//产生0-1000的双精度随机数  
    5         System.out.println(i);
    6         System.out.println();
    7         int b=(int)(Math.random()*1000);//产生0-1000的整数随机数  
    8         System.out.println(b);


    2.创建java.util.Random对象
     1 package com.hanqi;
     2 import java.util.Random;
     3 public class Test3 {
     4 
     5     public static void main(String[] args) {
     6         
     7         Random random=new Random();//创建random对象
     8         int intNumber=random.nextInt();//获取一个整型数
     9         float floatNumber=random.nextFloat();//获取一个浮点数(0-1)
    10         double doubleNumber=random.nextDouble();//获取双精度数(0-1)
    11         boolean booleanNumber=random.nextBoolean();//获取boolean数
    12         System.out.println("intNumber:"+intNumber);
    13         System.out.println("floatNumber:"+floatNumber);
    14         System.out.println("doubleNumber:"+doubleNumber);
    15         System.out.println("booleanNumber:"+booleanNumber);
    16         
    17     }
    18 
    19 }

    
    

    random在产生随机数的时候使用当前的时间作为基数,我们可以同过System.currentTimeMillis()来获取这个基数。当然我们也可以指定基数:

    Random random=new Random(100);

    同一基数所产生的随机数序列是一样的,可以用下面这一段程序进行印证:

     1 package com.hanqi;
     2 import java.util.Random;
     3 public class Test3 {
     4 
     5     public static void main(String[] args) {
     6         
     7         Random random1=new Random(100);
     8         Random random2=new Random(100);
     9         for(int i=0;i<5;i++){
    10             System.out.print(random1.nextInt()+"	");
    11             System.out.println(random2.nextInt()+"	");
    12             System.out.println("---------------------------------");



























  • 相关阅读:
    Apache 虚拟主机 VirtualHost 配置
    EAX、ECX、EDX、EBX寄存器的作用
    Python中文文档 目录(转载)
    八度
    POJ 3268 Silver Cow Party (最短路)
    POJ 2253 Frogger (求每条路径中最大值的最小值,Dijkstra变形)
    2013金山西山居创意游戏程序挑战赛——复赛(1) HDU 4557 非诚勿扰 HDU 4558 剑侠情缘 HDU 4559 涂色游戏 HDU 4560 我是歌手
    HDU 4549 M斐波那契数列(矩阵快速幂+欧拉定理)
    UVA 11624 Fire! (简单图论基础)
    HDU 3534 Tree (树形DP)
  • 原文地址:https://www.cnblogs.com/zhoudi/p/5479627.html
Copyright © 2011-2022 走看看