首先在java中存在两种生成随机数的方法,带种子的和不带种子的,总之,不带种子的程序每次运行时生成的随机数都不一样,而带种子的,不管程序运行多少次,每次生成的随机数都相同,种子只是提供一个算法,并没有直接改变生成的随机数,以下将一一讲解
一:java.lang.Math.Random
方法:
public class Test2 {
public static void main(String[] args) {
System.out.println(Math.random());//返回值是[0.0,1.0)之间的double值
}
}
二: java.util.Random
方法一:(不带种子的)
import java.util.Random;
public class Test2 {
public static void main(String[] args) {
Random ran1 = new Random();//首先创建对象
System.out.println(ran1.nextInt());//通过nextInt方法来获取数字
}
}
另外
import java.util.Random;
public class Test2 {
public static void main(String[] args) {
Random ran1 = new Random();//首先创建对象
System.out.println(ran1.nextInt());//通过nextInt方法来获取数字
System.out.println(ran1.nextInt(6));//这里控制生成随机数的范围[0 , 6)之间
System.out.println(ran1.nextInt(1,6));//这里是控制随机数的范围[1 , 6)之间
}
}
这里有一个用法就是如果要生成[1 , 6]之间的随机数,可以
System.out.println(ran1.nextInt(6) + 1);//就是[0 , 6) + 1 = [1 , 6]
方法二:(带种子的)
例:
import java.util.Random;
public class Test2 {
public static void main(String[] args) {
Random ran2 = new Random(25);//首先创建对象,seed为25
System.out.println(ran2.nextInt());//还是通过nextInt()来获取数字
}
}
这里其实就是在new Random的括号里加了一个int类型的数,这就叫种子
但是种子只是提供一个算法,每次运行程序时随机数并没有改变,实际随机数的范围还是通过nextInt()来控制,控制方法和效果和上文形同,如果想要改变随机数则要改变种子数。