黑马程序员技术交流社区
标题:
Java随机数小结
[打印本页]
作者:
gaoming971366
时间:
2015-7-15 11:20
标题:
Java随机数小结
在Java中,随机数的产生常用的有2中方法。第一种是使用java.util.Random类来产生一个随机数发生器;第二种是运行Math函数中的Random方法产生随机数。下面我来详细介绍一下:
一.>第一种是使用java.util.Random生成随机数,随机数发生器(Random)对象产生以后,通过调用不同的method:nextInt()、nextLong()、nextFloat()、nextDouble()等获得不同类型随机数。
Random random = new Random();
random调用不同的方法,获得随机数。
如果2个Random对象使用相同的种子(比如都是100),并且以相同的顺序调用相同的函数,那它们返回值完全相同。如下面代码中两个Random对象的输出完全相同
1>生成随机数,依据自己的需求来定义生成的类型函数
import java.util.*;
class TestRandom {
public static void main(String[] args) {
Random random1 = new Random(100);
System.out.println(random1.nextInt());
System.out.println(random1.nextFloat());
System.out.println(random1.nextBoolean());
Random random2 = new Random(100);
System.out.println(random2.nextInt());
System.out.println(random2.nextFloat());
System.out.println(random2.nextBoolean());
}
}
2>指定范围内的随机数
import java.util.*;
class TestRandom {
public static void main(String[] args) {
Random random = new Random();
for(int i = 0; i < 10;i++) {
System.out.println(Math.abs(random.nextInt())%10);
}
}
}
3>获取指定范围内的不重复随机数
import java.util.*;
class TestRandom {
public static void main(String[] args) {
int[] intRet = new int[6];
int intRd = 0;
int count = 0;
int flag = 0;
while(count<6){
Random rdm = new Random(System.currentTimeMillis());
intRd = Math.abs(rdm.nextInt())%32+1;
for(int i=0;i<count;i++){
if(intRet[i]==intRd){
flag = 1;
break;
}else{
flag = 0;
}
}
if(flag==0){
intRet[count] = intRd;
count++;
}
}
for(int t=0;t<6;t++){
System.out.println(t+"->"+intRet[t]);
}
}
}
二.> 第二种就是Math函数里的Random方法,它只产生double型的随机数。类Random中的方法十分简单,它只有两个构造方法和六个普通方法。
构造方法:
(1)public Random()
(2)public Random(long seed)
普通方法:
(1)public synonronized void setSeed(long seed)
该方法是设定基值seed。
(2)public int nextInt()
该方法是产生一个整型随机数。
(3)public long nextLong()
该方法是产生一个long型随机数。
(4)public float nextFloat()
该方法是产生一个Float型随机数。
(5)public double nextDouble()
该方法是产生一个Double型随机数。
(6)public synchronized double nextGoussian()
该方法是产生一个double型的Goussian随机数。
Random random=new Random();
random.nextInt();
也可以有nextFloat等等,各种基本类型都有。Math.random也可以,比如说你想要0-10之间的随机数(int)(Math.random()*10);
以上是介绍Java产生随机数的主要2种方法,大家在实际用到的时候我建立使用java.util.Random,因为这个工具是java开发者针对随机数开发的一个类,里面有好多功能非常好用,希望大家一起探索一起java。
作者:
824519050
时间:
2015-7-15 11:29
学习了.................
作者:
gaoming971366
时间:
2015-7-15 12:20
824519050 发表于 2015-7-15 11:29
学习了.................
一起学习。。。。
作者:
牵着蜗牛去逛街
时间:
2015-7-15 12:59
学习了,有所理解。。。
作者:
落叶随尘
时间:
2015-7-15 13:55
正在学习
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2