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()
时间: 2024-11-05 18:37:37