Java产生随机数

转自:http://tech.ddvip.com/2007-07/118589649730592.html

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

  一.java.lang.Math.random()

  在使用这一静态方法的时候,我们不需要import任何包,因为java.lang.*包是默认载入的,下面举例说面使用方法:


1
2
3
4
5
6
7
8
9
10
public class RandomTest{
   public static void main(String[] args){
     int i=Math.random(); //random()会自动产生一个0.0-1.0的双精度随机数
    System.out.println(i); //输出
    i=Math.random()* 1000 ; //产生0-1000的双精度随机数 
    System.out.println(i);
     int b=( int )(Math.random()* 1000 ); //产生0-1000的整数随机数 
    System.out.println(b);
  }
}

  二.创建java.util.Random对象


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

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

  Random random=new Random(100);

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


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

  我们可以发现random1和random2所产生的随机数是相同的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值