MAth类与Random类

Math类

Math类是Java编程语言中的一个工具类,它包含了一系列用于执行基本数学运算的静态方法;由于Math类中构造方法的访问权限是private,所以无法创建Math类的对象;Math类中的所有方法都是静态方法,可以通过类名直接调用Math类中的方法,出静态方法外,Math类中还定义了两个静态变量,分别为PI和E

Math类提供的方法可以帮助开发人员轻松地进行常见的数学计算,如指数、对数、平方根和三角函数等

以下是Math类中一些常用的方法:

1. `Math.abs(int a)`: 返回给定整数的绝对值

例如,Math.abs(-10)

返回10

2. `Math.ceil(double a)`: 返回大于或等于给定double值的最小整数

例如,Math.ceil(3.14)

返回4


3. `Math.floor(double a)`: 返回小于或等于给定double值的最大整数

例如,Math.floor(3.14)

返回3


4. `Math.random()`: 返回一个伪随机数,该数在0.0(包括0.0)和1.0(但不包括1.0)之间


5. `Math.round(double a)`: 返回最接近给定double值的long整数;如果两个整数距离该值相等,则返回偶数

例如,Math.round(3.5)

返回4

Math.round(2.5)

返回3


6. `Math.sqrt(double a)`: 返回给定非负double值的正平方根

例如,Math.sqrt(9)

返回3.0

除了上述方法,Math类还提供了许多其他用于数学运算的方法,如幂运算(`Math.pow()`)、对数运算(`Math.log()`)、三角函数(`Math.sin()`、`Math.cos()`、`Math.tan()`)等;这些方法在进行数学计算时非常有用,可以大大提高编程效率

Random类

一、Random类介绍

Random类是Java编程语言中的一个工具类,用于生成各种随机数据;它属于java.util包,提供了多种生成随机数的方法,如生成随机整数、随机浮点数、随机布尔值等;Random类在模拟、测试、游戏开发等领域有着广泛的应用

二、常用方法

1. nextInt(int bound)

生成一个随机的int值,该值在0(包括0)到指定的bound(不包括bound)之间。例如,nextInt(10)将生成一个0到9之间的随机整数。

示例代码:

Random random = new Random();
int randomInt = random.nextInt(10);
System.out.println(randomInt); // 输出0到9之间的随机整数


2. nextInt(int start, int end)

生成一个随机的int值,该值在指定的start(包括start)和end(不包括end)之间;

例如,nextInt(10, 20)将生成一个10到19之间的随机整数。

示例代码:

Random random = new Random();
int randomInt = random.nextInt(10, 20);
System.out.println(randomInt); // 输出10到19之间的随机整数


3. nextFloat()

生成一个随机的float值,该值在0.0(包括0.0)到1.0(不包括1.0)之间

示例代码:

Random random = new Random();
float randomFloat = random.nextFloat();
System.out.println(randomFloat); // 输出0.0到1.0之间的随机浮点数


4. nextDouble()

生成一个随机的double值,该值在0.0(包括0.0)到1.0(不包括1.0)之间

示例代码:

Random random = new Random();
double randomDouble = random.nextDouble();
System.out.println(randomDouble); // 输出0.0到1.0之间的随机浮点数


5. nextBoolean()

生成一个随机的boolean值,即true或false

示例代码:

Random random = new Random();
boolean randomBoolean = random.nextBoolean();
System.out.println(randomBoolean); // 输出true或false

除了以上常用方法外,Random类还提供了其他多种生成随机数的方法,如生成随机长整型(nextLong)、随机字节数组(nextBytes)等;这些方法可以根据需要选择合适的来生成所需的随机数

三.构造方法

Random类在Java中提供了多种构造方法来创建随机数生成器对象;以下是Random类的主要构造方法及其描述:

1. 无参构造方法

public Random()


   这是Random类的默认构造方法,它创建一个新的随机数生成器;这个生成器被初始化为一个不可预测的值,通常基于系统时间;使用此构造方法创建的Random实例将生成一系列均匀分布的伪随机数。

   示例代码:
   

Random random = new Random();

2. 带有单一long种子的构造方法

public Random(long seed)


   此方法使用给定的long值作为种子来创建一个新的随机数生成器;种子值会影响生成器产生的随机数序列;如果两个Random实例使用相同的种子创建,那么它们的`nextInt()`方法将产生相同的随机数序列

   示例代码:

  long seed = System.currentTimeMillis(); // 使用当前时间作为种子
   Random random = new Random(seed);

   通常,如果你不传递种子值给Random构造方法,那么系统会使用默认的无参构造方法,它会自动选择一个种子值;然而,如果你需要能够重现同一随机序列,或者需要两个或多个随机数生成器产生相同的序列,那么可以使用带有种子的构造方法

无论你选择哪种构造方法,创建的Random对象都可以用来生成各种随机数据,如之前提到的`nextInt()`, `nextFloat()`, `nextDouble()`, `nextBoolean()`等方法

请注意,由于Random类生成的是伪随机数,因此它们不是真正的随机。它们是通过一个确定的算法从给定的种子值计算得出的;尽管如此,伪随机数在许多应用中都足够好,例如模拟和测试;对于需要更高随机性的场景(例如加密),应使用更强大的随机数生成器;

如`java.security.SecureRandom`类

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值