在Java中我们可以使用java.util.Random类来产生一个随机数发生器。它有两种形式的构造函数,分别是Random()和Random(long seed)。Random()使用当前时间即System.currentTimeMillis()作为发生器的种子,Random(long seed)使用指定的seed作为发生器的种子。
随机数发生器(Random)对象产生以后,通过调用不同的method:nextInt()、nextLong()、nextFloat()、nextDouble()等获得不同类型随机数。
1>生成随机数 Random random = new Random(); Random random = new Random(100);//指定种子数100 random调用不同的方法,获得随机数。 如果2个Random对象使用相同的种子(比如都是100),并且以相同的顺序调用相同的函数,那它们返回值完全相同。如下面代码中两个Random对象的输出完全相同 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); } } } 获得的随机数有正有负的,用Math.abs使获取数据范围为非负数
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]); } } }
|
Java随机数类Random介绍 |
|
Java实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法。它可以产生int、long、float、double以 及Goussian等类型的随机数。这也是它与java.lang.Math中的方法Random()最大的不同之处,后者只产生double型的随机 数。 类Random中的方法十分简单,它只有两个构造方法和六个普通方法。 构造方法: (1)public Random() (2)public Random(long seed) Java产生随机数需要有一个基值seed,在第一种方法中基值缺省,则将系统时间作为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随机数。 例2 RandomApp.java。 //import java.lang.*; import java.util.Random;
public class RandomApp{ public static void main(String args[]){ Random ran1=new Random(); Random ran2=new Random(12345); //创建了两个类Random的对象。 System.out.println("The 1st set of random numbers:"); System.out.println(" Integer:"+ran1.nextInt()); System.out.println(" Long:"+ran1.nextLong()); System.out.println(" Float:"+ran1.nextFloat()); System.out.println(" Double:"+ran1.nextDouble()); System.out.println(" Gaussian:"+ran1.nextGaussian()); //产生各种类型的随机数 System.out.print("The 2nd set of random numbers:"); for(int i=0;i<5;i++){ System.out.println(ran2.nextInt()+" "); if(i==2) System.out.println(); //产生同种类型的不同的随机数。 System.out.println(); } } }
|
Random random=new Random();
random.nextInt();
也可以有nextFloat等等,各种基本类型都有
Math.random也可以
比如说你想要0-10之间的随机数
你可以这样写
(int)(Math.random()*10);
JAVA产生指定范围的随机数》
《JAVA产生指定范围的随机数》
产生机制:
产生Min-Max之间的数字
实现原理:
Math.round(Math.random()*(Max-Min)+Min)
long Temp; //不能设定为int,必须设定为long
//产生1000到9999的随机数
Temp=Math.round(Math.random()*8999+1000);
from : http://blog.csdn.net/herrapfel/article/details/1885016
http://blog.csdn.net/ming1683/article/details/3195058
分享到:
相关推荐
Java获取随机数的3种方法和总结,正对Java中的随机数做出解释
本篇文章主要介绍了Java获取随机数的3种方法,现在分享给大家,也给大家做个参考,感兴趣的小伙伴们可以参考一下。
java获取随机数的3种方法和总结.docx
Java获取随机数的3种方法和总结[归类].pdf
Math.random:随机数的个,十,百,千,,,位数相加详解
JAVA 生成随机数,并根据概率、比率,通过返回数字来判断中奖情况
在java中,我们可以通过两种方式来获取随机数(generating a random number)一种是大家熟悉的java.lang.Math.Random()静态方法,另一种是创建java.util.Random对象。本文介绍了两种方法的使用过程。
获取随机数3中方获取随机数3中方获取随机数3中方
Java生成32位随机数,短位随机数工具类
java生成16位随机数
主要介绍了java生成随机数的方法,涉及java随机数及字符串操作的相关技巧,需要的朋友可以参考下
主要是一个Java获取计算机基本信息并且在Web页面上以ExtJs4的图表展示,这里删除了ExtJs4的资源和一个算法产生验证码,因为这个算法最终使用到了产品中,所以就把这个测试的类删除了,各位不好意思了
java获取随机的两位数字(可改为多位),可用于订单号后补数字等
从数组获取多个随机数
主要介绍了java生成随机数(字符串)示例分享,需要的朋友可以参考下
Java随机数生成 随机数有三种生成方式 1.通过Math.random()方法 2.通过System.currentTimeMillis()方法获取毫秒数, 3.通过Random类 ——————————————————————使用开发工具MyEclipse10 第一种:...
题目是: 有一个一维数组charArray,长度为14个字符,编写程序随即从字符 ‘0’到字符‘9’和字符’a’,’b’,’c’,’d’共有14个字符,编写程序随即从字符数组中获取4个字符,组成一个字符串,要求该字符串可以...
微信获取jssdk例子JAVA例子生成sign签名(MD5格式) 校验sign
本篇文章主要介绍了JAVA 根据设置的概率生成随机数的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
1.获取系统时间 + 随机数,但是由于系统时间前几位是相同的,所以截取几位数字; 2.获取随机数,math的方法,截取几位数字; 3.判重校验