此类的实例用于生成伪随机数
Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第N次生成的随机数字也完全相同。这点在生成多个随机数字时需要特别注意。
(注意:种子数只是随机算法的起源数字,和生成的随机数字的区间无关)
查看类:
java.util.Random
:该类需要 import导入使后使用。查看构造方法
public Random()
:创建一个新的随机数生成器。public Random(long seed)
:该构造方法可以通过制定一个种子数进行创建。Random r = new Random();
Random r1 = new Random(10);
查看成员方法
Random类中的方法比较简单,每个方法的功能也很容易理解。需要说明的是,Random类中各方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的几率是均等的
public int nextInt()
:返回一个伪随机数,范围在 0 (包括)和 指定值 n (不包括)之间的 int 值。
public boolean nextBoolean()
:该方法的作用是生成一个随机的boolean值,生成true和false的值几率相等,也就是都是50%的几率。
public double nextDouble()
:该方法的作用是生成一个随机的double值,数值介于[0,1.0)之间。
public int nextInt()
:该方法的作用是生成一个随机的int值,该值介于int的区间,也就是-2^31到 2^31-1之间。
public int nextInt(int n)
:生成指定区间的int值,该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n。
public void setSeed(long seed)
:该方法的作用是重新设置Random对象中的种子数。设置完种子数以后的Random对象和相同种子数使用new关键字创建出的Random对象相同。
使用Random类,完成生成3个10以内的随机整数的操作
import java.util.Random;
public class test {
public static void main(String[] args) {
//2. 创建键盘录入数据的对象
Random r = new Random();
for(int i = 0; i < 3; i++){
//3. 随机生成一个数据
int number = r.nextInt(10);
//4. 输出数据
System.out.println("number:"+ number);
}
}
}
获取1-n之间的随机数,包含n,代码如下:
//1. 导包
import java.util.Random;
public class test {
public static void main(String[] args) {
int n = 50;
// 创建对象
Random r = new Random();
// 获取随机数
int number = r.nextInt(n) + 1;
// 输出随机数
System.out.println("number:" + number);
}
}
猜数字游戏: 游戏开始时,会随机生成一个1-100之间的整数 number 。玩家猜测一个数字 guessNumber ,会与 number 作比 较,系统提示大了或者小了,直到玩家猜中,游戏结束。
import java.util.Random;
import java.util.Scanner;
public class test
{
public static void main(String[] args) {
// 系统产生一个随机数1‐100之间的。
Random r = new Random();
int number = r.nextInt(100) + 1;
while(true){
// 键盘录入我们要猜的数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要猜的数字(1‐100):");
int guessNumber = sc.nextInt();
// 比较这两个数据(用if语句)
if (guessNumber > number)
{
System.out.println("你猜的数据" + guessNumber + "大了");
} else if (guessNumber < number)
{ System.out.println("你猜的数据" + guessNumber + "小了");
} else
{
System.out.println("恭喜你,猜中了");
break;
}
}
}
}
java.lang.Math
类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具 类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。
Math.sqrt()
:计算平方根Math.cbrt()
:计算立方根Math.hypot(x,y)
:计算 (x的平方+y的平方)的平方根Math.pow(a,b)
:计算a的b次方Math.exp(x)
:计算e^x的值Math.max()
:计算最大值 Math.min();//计算最小值Math.abs()
:返回 double 值的绝对值。Math.ceil()
:天花板的意思,返回大于等于参数的最小的整数Math.floor()
:地板的意思,返回小于等于参数最大的整数Math.random()
: 取得一个大于或者等于0.0小于不等于1.0的随机数[0,1)Math.rint()
: 四舍五入 返回double值Math.round()
: 四舍五入 float时返回int值,double时返回long值Math.nextUp(a)
: 返回比a大一点点的浮点数Math.nextDown(a)
: 返回比a小一点点的浮点数Math.nextAfter(a,b)
:返回(a,b)或(b,a)间与a相邻的浮点数 b可以比a小欢迎持续关注!
个人博客站:jQueryZK Blog