Java中的Math类、Random类
1.Math类
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
Math 类来自java.long.Math.random()
```java
public class Math_dome1 {
public static void main(String[] args) {
System.out.println(Math.abs(-2.0)); //绝对值
System.out.println(Math.sqrt(64.0)); //立方根
System.out.println(Math.max(56,78)); //两者之间较大的
System.out.println(Math.min(56,78)); //两者之间较小的
System.out.println(Math.random()); //随机数
System.out.println(Math.pow(2,10)); //幂
System.out.println(Math.ceil(18.36)); //向上取整
System.out.println(Math.floor(18.66)); //向下取整
System.out.println(Math.round(11.5)); //四舍五入
System.out.println(Math.round(-11.5)); //四舍五入
}
}
2.Random类
Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。
相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。这点在生成多个随机数字时需要特别注意。
Random类来自java.util.Random();
使用Random类生成随机数
public static void main(String[] args) {
Random random = new Random();
for(int i = 0;i<100;i++) {
int a = random.nextInt(3)+1;
System.out.print(a);
}
}
java.util.Random类用法
①、该类的构造方法:
Random():构造一个无参的随机数生成器。使用系统时间的毫秒作为默认种子。
Random(long seed):使用 long数据类型的种子构造一个随机数生成器。
②方法摘要:
boolean nextBoolean():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 boolean值。
double nextDouble():返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0
和 1.0
之间均匀分布的 double
值。
float nextFloat():返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0
和 1.0
之间均匀分布的 float
值。
int nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int
值.
int nextInt(int n):返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值n(不包括)之间均匀分布的 int
值。
long nextLong():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long
值。
void setSeed(long seed):使用单个 long
种子设置此随机数生成器的种子。
注意:如果用相同的种子创建两个 Random
实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
例如:
public class TestRandom{
public static void main(String[] args){
int sum=0;
java.util.Random random=new java.util.Random();
for(int i=0;i<10;i++){
int a=random.nextInt(10);
System.out.print(a+" ");
}
System.out.println("");
for(int i=0;i<10;i++){
int a=random.nextInt();
System.out.println(a);
}
System.out.println("");
for(int i=0;i<10;i++){
double a=random.nextDouble();
System.out.println(a);
}
System.out.println("");
for(int i=0;i<10;i++){
boolean a=random.nextBoolean();
System.out.println(a);
}
System.out.println("");
}
}