java真随机数_Java的随机数⽣成⽅式
java生成随机数的方法列举两种常⽤的:
第⼀种:new Random(),nextInt(10),范围是1~10,以括号⾥⾯的值限制范围。
1 public classTest {
2 public static voidmain(String[] args) {
3 Random random = new Random(3);
4 int ranNum =
random⾥其实是⼀个数列,这个数列每⼀位的数字接近随机分布,可以从数学上证明,但是⼀个数列⼀定是确定的,也就是第⼀个是什么数,第⼆个什么数都是固定的,就像1,2,3,4.。。。但是可以通过⼀个种⼦选取数列的起始位置,例如,上⾯的数列从3开始,就是3,4,。。。这就使每次的随机数都不相同。⽽这个种⼦⼀般使⽤程序运⾏时对应时间的秒(从某⼀年开始总的秒数),每次的随机数就不同了,产⽣可以使⽤的伪随机数。
即种⼦⽤于随机数⽣成器初始化值,随机⽣成器对于特定的种⼦值总是产⽣相同的随机数序列。
⼀般Random random = new Random();系统采取当前时间毫秒数做种⼦数做到随机不然的话写了种⼦数随机数就是定值了。
⽽Int(10)这个⽅法的作⽤是⽣成⼀个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0⽽不包含n。
再举个列⼦:
public classTest {public static voidmain(String[] args) {
Random random= new Random(9);int ranNum = Int(10);
System.out.println(ranNum);
}
}
得到的结果只能是:9
第⼆种:Math.random()是令系统随机选取⼤于等于 0.0 且⼩于 1.0 的伪随机 double 值。例如:double a=Math.random()*(3-1)+1,设置⼀个随机1到3的变量。
(Math.random()*max-min)+min,⽤法如下:
1 public classTest {
2 public static voidmain(String[] args) {
3 double ranNum = (Math.random()*100-1)+1;4
System.out.println(ranNum);5 System.out.println("强转后:"+(int)ranNum);6 }7 }
结果如下图:
得到是⼀个double类型的数值,将它强转为int类型的就好了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论