码迷,mamicode.com
首页 > 编程语言 > 详细

java的Random

时间:2014-11-21 10:53:05      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:ar   使用   sp   java   问题   bs   as   new   算法   

1.java的Random是伪随机,在一个区间会等几率生成随机数。利用这个可实现概率问题:
实现60%几率执行A程序,30%几率执行B程序,10%几率执行C程序。
Random rnd = new Random();
double d = rnd.nextDouble();
if(d<=0.6){
	System.out.println("执行A");
}else if(d<=0.9){
	System.out.println("执行B");
}else{
	System.out.println("执行C");
}



2.Random里的种子数是个生成随机数的起源数,与生成什么没有关系。两个种子数相同的Random生成的同类型随机数也是相同的,内部执行的算法是一致的,应用中一般只使用一个Random对象。但new Random()的种子数是随机的,两个new Random()生成的同类型随机数基本都是不同的。
3.Random里的方法nextBytes(byte[] bytes)给bytes附上随机字节,无返回值。
4.几个例子:
生成[-3,15)之间的随机数:
System.out.println(rnd.nextInt(4) * (-1) + rnd2.nextInt(15));
System.out.println(rnd.nextInt(18) - 3);



生成[1,2.5]之间的随机数:
System.out.println(1 + rnd.nextDouble() * 0.5 + rnd.nextInt(2));
System.out.println(rnd.nextDouble() * 1.5 + 1);



生成.[0,5.0]之间的随机数:
System.out.println(rnd2.nextDouble() + rnd2.nextInt(5));
System.out.println(rnd2.nextDouble() * 5);



5.nextBoolean随机生成true  false,Math.random()调用的是Random的nextDouble()

java的Random

标签:ar   使用   sp   java   问题   bs   as   new   算法   

原文地址:http://my.oschina.net/wrean/blog/347078

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!