在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获取随机数的三种主要方法。 方法一:使用`Math.random()`函数 这是最基础的生成随机数的方法,`Math.random()`返回的是一个0.0到1.0之间的浮点数,不包括1.0。如果你需要生成指定范围内的整数,...
以下是Java获取随机数的三种主要方法的详细解释: 1. **Math.random()方法** Math.random()是Java中最基础的随机数生成方法,它返回一个0.0到1.0之间的浮点数(不包括1.0),精确到小数点后15位。如果你需要生成一...
在Java编程语言中,获取随机数是常见的需求,用于模拟各种随机行为或在游戏中生成随机事件等。以下是三种在Java中生成随机数的方法,以及一些相关的知识点总结: 1. **方法1:使用Math.random()** `Math.random()`...
Math.random:随机数的个,十,百,千,,,位数相加详解
以下是三种在Java中获取随机数的方法: 1. **基于`Math.random()`的方法**: `Math.random()`函数返回一个0.0到1.0之间的随机浮点数,不包括1.0。若想生成指定范围内的整数随机数,可以使用如下的转换公式: ```...
java生成16位随机数
在Java编程语言中,生成随机数是常见的需求,可以用于模拟、测试、加密等多种场景。本文将详细探讨Java中生成随机数的两种主要方法:`java.lang.Math.random()`静态方法和`java.util.Random`类。 首先,我们来看`...
Java生成32位随机数,短位随机数工具类
Java 根据比例概率生成随机数 概率随机数是指根据事先设定的概率分布生成随机数的方法。在 Java 中,可以使用 Math.random() 方法生成随机数,然后根据概率分布判断返回的数字。 在给定的代码中,作者定义了一个 ...
通过实例化`Random`类,我们可以获取到一个随机数生成器,然后调用其方法来生成不同类型的随机数。例如,创建一个`Random`对象的基本语法如下: ```java Random random = new Random(); ``` 生成整数随机数的方法...
Java获取随机数与猜数字小游戏 Java是最流行的编程语言之一,它广泛应用于各种领域,如 Android 开发、Web 开发、企业软件开发等。 在 Java 编程中,获取随机数是一个非常重要的功能,例如在猜数字小游戏中,我们...
如果图片中包含有关如何生成或查找最大随机数的示例,建议查看图片以获取更多信息。 总之,Java的`Random`类提供了生成随机数的能力,通过`nextInt()`和`nextDouble()`方法可以生成不同类型的随机数。寻找最大...
以下是根据标题、描述和标签所提及的三种获取随机数的方法的详细说明: **方法1:基于`Math.random()`** `Math.random()` 是 `java.lang.Math` 类中的一个静态方法,它返回一个在 [0.0, 1.0) 范围内的双精度浮点数...
主要是一个Java获取计算机基本信息并且在Web页面上以ExtJs4的图表展示,这里删除了ExtJs4的资源和一个算法产生验证码,因为这个算法最终使用到了产品中,所以就把这个测试的类删除了,各位不好意思了
在Java编程语言中,生成随机数是一项常见的任务,特别是在创建安全的验证码系统或者构建订单编号时。本篇文章将深入探讨如何在Java中生成指定范围内的随机数,包括4位到36位的数字,以及结合时间戳来创建更复杂的30...
虽然默认情况下,其产生的随机数范围比较小,但可以通过一些灵活的处理来获取任意范围的随机数。 例如,要生成一个0到10之间的随机整数,可以使用以下代码: ``` (int)(Math.random()*10) ``` 这将生成一个0到9之间...
标题中的“利用系统时间可预测破解java随机数”揭示了一个重要的信息安全问题,即Java的随机数生成器在某些情况下可能不那么随机,可以被有心人利用系统时间预测。这通常发生在程序依赖于系统时间来生成随机数序列时...
java获取随机的两位数字(可改为多位),可用于订单号后补数字等
从数组获取多个随机数
在这个“Java 反射随机数的输出”工程练习中,我们将探讨如何结合反射机制来操作Java的`java.util.Random`类,以实现不同场景下的随机数生成。 首先,`Random`类是Java标准库中的一个核心类,用于生成各种类型的...