关于Java中的随机数产生

对比两种写法:

第一种:

	public static void main(String args[]){
		Random random = new Random(System.currentTimeMillis());
		for(int i=0; i<20; i++){
			int sindex = random.nextInt(2);
			System.out.println(sindex);
		}
		}

第二种:

	public static void main(String args[]){
		for(int i=0; i<20; i++){
			Random random = new Random(System.currentTimeMillis());
			int sindex = random.nextInt(2);
			System.out.println(sindex);
		}
		}

第一种中产生的随机数是正常的,然而在第二种写法中,所得随机数都一样。暂不知为何,初步猜测与系统时间相关。

时间: 2024-10-24 17:02:27

关于Java中的随机数产生的相关文章

Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom

Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom 文中的 Random即:java.util.Random,ThreadLocalRandom 即:java.util.concurrent.ThreadLocalRandomSecureRandom即:java.security.SecureRandom Q:Random是不是线程安全的?A:Random是线程安全的,但是多线程下可能性能比较低.参考:http://docs.oracle.com

Java中生成随机数Random、ThreadLocalRandom、SecureRandom、Ma

我们来说说Java常见的生成随机数的几种方式:Random,ThreadLocalRandom,SecureRandom;其实产生随机数有很多种方式但我们常见的就这几种,如果需要详细了解这个三个类,可以查看JAVA API. Random random = new Random(); int a = random.nextInt(5);//随机生成0~4中间的数字 其实Random是有构造函数的,他的参数可以传一个long类型的值,当使用空的构造的时候,使用的实际上是System.nanoTim

Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom(转)

文中的 Random即:java.util.Random,ThreadLocalRandom 即:java.util.concurrent.ThreadLocalRandomSecureRandom即:java.security.SecureRandom Q:Random是不是线程安全的?A:Random是线程安全的,但是多线程下可能性能比较低.参考:http://docs.oracle.com/javase/7/docs/api/java/util/Random.htmlhttp://stac

java中的随机数(Math.random()),以及如何产生一个类似于[21,77]区间的随机数。

//Math.random()产生的是[0,1)!!! double k=Math.random(); //注意下面那个=要加上,这样才满足数学对称性 if(k>=0.5)//意思是当产生的随机数大于等于0.5时说自己牛B,小于0.5时说这种自己傻B System.out.println("我活在牛A和牛C之间"+k); else System.out.println("我活在傻A和傻C之间"+k); //===========================

Java中随机数的产生方式与原理

查阅随机数相关资料,特做整理 首先说一下java中产生随机数的几种方式 在j2se中我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以100,他就是个100以内的随机数字,这个在j2me中没有. 在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以生产随机整数.随机float.随机double.随机long,这个也是我们在j2me的程序里经常用的一个取随机数的方法

java中随机生成随机数及不重复的随机数字

Java中产生随机数 1 . 调用java.lang下面Math类中的random()方法产生随机数 public class MyRandom { public static void main(String[] args) { int  radom = (int)(Math.random()*10); System.out.println(radom); } } 其中Math.random() //产生0~1之间的一个随机小数. 产生一个0~9之间的整数为:(int)(Math.random

java中Random(long seed)方法与rRandom()方法的使用产生随机数

Random 类作为JAVA中用于产生的随机数 ,new  Random(10)  :10是种子数. 注意:Random 的一个特点是:相同种子数的Random对象,对应相同次数生成的随机数字是完全相同的 验证代码: Random r1 = new Random(10); Random r2 = new Random(10); for(int i = 0;i < 4;i++){ System.out.println(r1.nextInt(5)); } System.out.println("

Java中如何生成随机数

Java中提供了一个获取随机数的一个类(Math) Math:此类在java.lang包下,jvm会自动导入,所以无需import导包 生成随机数要使用Math类下的方法:random() 方法的返回值是[0.0 - 1.0) 1.获取上述范围内的随机数: double d = Math.random(); 注:上述式子若写成下面这样,那么i的值只会是0:因为Math.random()生成的随机数范围为[0.0 - 1.0),此时无论随机数为何值转为int时值只会是0 int i = (int)

在java中,如何输出不重复的几个随机数

在Java中,如果输出的随机数的个数比较少,为避免生成的随机数发生重复,可以把每个生成的输逐个进行比较. 以在[1.36]生成5个不重复的随机整数为例,如果出现重复,需重新生成 首先第一步,生成5个在[1,36]范围的随机整数 然后把生成的随机数逐个进行比较 如果要求生成的随机数比较多,显然通过逐个比较难以完成,此时需要用for循环变量来生成随机数,然后制定一个数组来储存生成的随机数,然后再比较,详细写法下次更新 原文地址:https://www.cnblogs.com/scarlett123/