您的位置:首页 > 编程语言 > Java开发

使用Java中的Random类产生随机数

2014-03-05 17:38 369 查看

java.util类 Random

java.lang.Object
java.util.Random
public class Random
extends Objectimplements Serializable
一、注意事项
1.用相同的初值创建Random对象,得到的随机数序列是相同的。例如:
Random ran1=new Random(100);
Random ran2=new Random(100);
以上两种方法得到的随机数相同,而且每次都一样,也就是说	Random(100) 其实是一个固定值。
2.针对上述这个问题,Java设计者们在Random类的Random()构造方法中使用当前的时间来初始化Random对象,因为没有任何时刻的时间是相同的,所以就可以减少随机数序列相同的可能性。
二、主要方法
构造方法摘要
Random()
          创建一个新的随机数生成器。
Random(long seed)
          使用单个
long
种子创建一个新随机数生成器: public Random(long seed) { setSeed(seed);} next 方法使用它来保存随机数生成器的状态。
方法摘要
protected int
next(int bits)
          生成下一个伪随机数。
int
nextInt()
          返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的
int
值。
 int
nextInt(int n)
          返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。
 long
nextLong()
          返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的
long
值。
 void
setSeed(long seed)
          使用单个
long
种子设置此随机数生成器的种子。
三、示例
1.输出5个0~100的随机数
import java.util.*;class  StringDemo{public static void main(String[] args) {Random ran1=new Random();for(int ln=0;ln<5;ln++){int temp = ran1.nextInt(101); 
			System.out.println(temp);}}}
注意:nextInt()方法是左包含,右不包含,即[0,101),不包含101。从而满足输出0~100的随机数。
2.改变种子输出随机数
import java.util.*;class  StringDemo{public static void main(String[] args) {Random ran1=new Random(20);System.out.println(ran1.nextInt());for(long ln=50;ln<200;ln++){
			ran1.setSeed(ln);  // 改变Random生成器的种子System.out.println(ran1.nextInt());}}}
3.利用当前时间输出随机数
import java.util.*;class  StringDemo{public static void main(String[] args) {Calendar c1=Calendar.getInstance();long ln;ln = (c1.get(Calendar.YEAR)+(c1.get(Calendar.MONTH)+1)+c1.get(Calendar.DAY_OF_MONTH)+c1.get(Calendar.HOUR_OF_DAY)+c1.get(Calendar.MINUTE)+c1.get(Calendar.SECOND));Random ran1=new Random(ln);System.out.println(ran1.nextInt());Random ran2=new Random(100);System.out.println(ran2.nextInt());}}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: