java math类 random_JAVA API(三) Math类和Random类

1.Math类

Math类是数学操作类,提供了一些用于进行数学计算的静态方法。Math类中有两个静态常量PI和E,分别代表数学常量π和e。

列表中是Math类的一些常用方法:

方法声明

功能描述

int abs(int a)

计算a的绝对值

double ceil(double a)

向上取整,求大于参数的最小整数

double  floor(double a )

向下取整,求小于参数的最大整数

long round(double a)

表示四舍五入,算法为Math.floor(a+0.5)

double max(double a,double b)

取两个数的较大值

double min(double a,double b)

取两个数的较小值

double random()

生成一个0到1之间的随机数

下面是Math类中一些常用方法的例子。

Example01.java

public classExample01 {public static voidmain(String[] args) {

System.out.println("计算绝对值的结果:" + Math.abs(-1));

System.out.println("求大于参数的最小整数:" + Math.ceil(5.6));

System.out.println("求小于参数的最大整数:" + Math.floor(-4.2));

System.out.println("对小数进行四舍五入后的结果:" + Math.round(-4.6));//round()表示四舍五入,算法为Math.floor(x+0.5)

System.out.println("求两个数的较大值: " + Math.max(2.1, -2.1));

System.out.println("求两个数的较小值:" + Math.min(2.1, -2.1));

System.out.println("生成一个大于等于0.0小于1.0的随机数:" +Math.random());

}

}

运行结果如下:

605b71f9be41da33a8308faf133150f1.png

2.Random类

Random类存在于java.util包中,它可以在指定的取值范围内产生随机数。下面是它的构造方法:

方法声明

功能描述

Random()

构造方法,用于创建一个伪随机数生成器

Random(long seed)

构造方法,使用一个long型的seed种子创建伪随机数生成器

上面的构造方法中,第一个构造方法是无参的,通过它创建的Random实例对象每次使用的种子是随机的,因此每个对象所产生的随机数不同。如果希望创建的多个Random实例对象产生相同序列的随机数,则可以在创建对象时调用第二个构造方法,传入相同的种子即可。下面是构造方法的例子:

Example02.java

public classExample02 {public static voidmain(String[] args) {

Random random= new Random();//不传入种子//随机产生10个【0,100】之间的整数

for (int i = 0; i < 10; i++) {

System.out.println(random.nextInt(100));

}

}

}

第一次运行结果如下:

c4bd7c0f02d3c3250f2ce823fc72dd89.png

第二次运行结果如下:

0d56f734864fdb05329fc6c455d79a40.png

从上面的两次结果可以看出来,两次产生的随机数序列是不一样的。这是因为当创建Random的实例对象时,没有指定种子,系统会以当前时间戳为种子,产生随机数。

下面把代码稍作修改:

Example03.java

public classExample03 {public static voidmain(String[] args) {

Random random= new Random(13);//创建对象时传入种子//随机产生10个【0,100】之间的整数

for (int i = 0; i < 10; i++) {

System.out.println(random.nextInt(100));

}

}

}

第一次运行结果如下:

e38016373d414d590e4360108507b2bd.png

第二次运行结果如下:

0314763c2524c7a219b34aae27b61970.png

从两次运行结果可以看出来,在创建Random类的实例对象时,如果指定了相同的种子,则每次产生的随机数是相同的。

Random类提供了更多的方法来生成各种伪随机数,不仅可以生成整数类型的随机数,还可以生成浮点类型的随机数。

方法声明

功能描述

boolean nextBoolean()

随机生成boolean类型的随机数

double nextDouble()

随机生成double类型的随机数

float nextFloat()

随机生成float类型的随机数

int nextInt()

随机生成int类型的随机数

int nextInt(int n)

随机生成0~n之间的int类型的随机数

long nextLong()

随机生成long类型的随机数

下面通过例子来看一下这些方法的使用:

Example04.java

public classExample04 {public static voidmain(String[] args) {

Random r1= new Random();//创建Random实例对象

System.out.println("产生float类型的随机数:" +r1.nextFloat());

System.out.println("产生0-100之间int类型的随机数:" + r1.nextInt(100));

System.out.println("产生double类型的随机数:" +r1.nextDouble());

}

}

运行结果如下:

7d5bb2266d5a8a05363c7c475a1f217a.png

从上面的运行结果可以看出来,通过调用Random类不同的方法分别产生了不同类型的随机数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值