在本文中,我们将简要概述 Java 中的 Math 类。我们来谈谈这个类的方法以及如何使用它们。Math 类位于 java.lang 包中,并提供一组静态方法来执行许多不同的数学计算。以下是 Math 类可能有用的计算示例:
- 绝对值的计算(模值)
- 三角函数值的计算(正弦、余弦等)
- 不同程度的海拔
- 提取不同程度的根
- 随机数生成
- 四舍五入
- ETC。
- 静态双腹肌(双a)
- 静态浮动绝对值(浮动a)
- 静态 int 绝对值(int a)
- 静态长腹肌(长a)
public static void main(String[] args) {
System.out.println(Math.abs(-1)); // 1
System.out.println(Math.abs(-21.8d)); // 21.8
System.out.println(Math.abs(4532L)); // 4532
System.out.println(Math.abs(5.341f)); // 5.341
}
计算三角函数的值
Math 类允许您计算各种三角函数 - 正弦、余弦、正切等。完整的方法列表可以在官方文档网站上找到。下面是这些方法的列表:- 静态双罪(双a)
- 静态双 cos(双 a)
- 静态双tan(双a)
- 静态双asin(双a)
- 静态双 acos(双 a)
- 静态双 atan(双 a)
- 静态双 toDegrees(双 angrad)
- 静态双 toRadians(双 angdeg)
public static void main(String[] args) {
System.out.println(Math.sin(Math.toRadians(0)));
System.out.println(Math.sin(Math.toRadians(30)));
System.out.println(Math.sin(Math.toRadians(90)));
System.out.println(Math.cos(Math.toRadians(0)));
System.out.println(Math.cos(Math.toRadians(30)));
System.out.println(Math.cos(Math.toRadians(90)));
}
程序将输出:
0.0
0.49999999999999994
1.0
1.0
0.8660254037844387
6.123233995736766E-17
它与正弦和余弦表不太对应,部分原因是从角度到弧度的转换中存在错误。
求幂
为了计算数字的幂,Math 类提供了一个 pow 方法,该方法具有以下签名:static double pow(double a, double b)
此方法将参数“a”进行“b”次幂。例子:
public static void main(String[] args) {
System.out.println(Math.pow(1,2)); // 1.0
System.out.println(Math.pow(2,2)); // 4.0
System.out.println(Math.pow(3,2)); // 9.0
System.out.println(Math.pow(4,2)); // 16.0
System.out.println(Math.pow(5,2)); // 25.0
System.out.println(Math.pow(1,3)); // 1.0
System.out.println(Math.pow(2,3)); // 8.0
System.out.println(Math.pow(3,3)); // 27.0
System.out.println(Math.pow(4,3)); // 64.0
System.out.println(Math.pow(5,3)); // 125.0
}
拔根
Math 类提供了求平方根和立方根的方法。以下方法负责此过程:- 静态双开方(双a)
- 静态双 cbrt(双 a)
public static void main(String[] args) {
System.out.println(Math.sqrt(4)); // 2.0
System.out.println(Math.sqrt(9)); // 3.0
System.out.println(Math.sqrt(16)); // 4.0
System.out.println(Math.cbrt(8)); // 2.0
System.out.println(Math.cbrt(27)); // 3.0
System.out.println(Math.cbrt(125)); // 5.0
}
随机数生成
为了生成随机数,Math 类提供了 random 方法。此方法生成 0.0 到 1.0 范围内的随机正实数(双精度)。方法签名如下所示:public static double random()
让我们看一下例子:
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println(Math.random());
}
}
执行main方法后,控制台显示如下:
0.37057465028778513
0.2516253742011597
0.9315649439611121
0.6346725713527239
0.7442959932755443
通过一些操作,您可以使用 Math 类的 random 方法来获取特定范围内的整数随机数。下面是一个函数示例,该函数接受两个参数 min 和 max,并返回一个介于 min(含)和 max(含)范围内的随机整数:
static int randomInARange(int min, int max) {
return (int) (Math.random() * ((max - min) + 1)) + min;
}
让我们编写一个 Main 方法,在其中测试 randomInARange 方法:
public class MathExample {
public static void main(String[] args) {
// Карта, в которой мы будем хранить количество выпадений Howого-то числа
Map<Integer, Integer> map = new TreeMap<>();
// За 10000 операций
for (int i = 0; i < 10000; i++) {
// Сгенерируем рандомное число от -10 включительно до 10 включительно
final Integer randomNumber = randomInARange(-10, 10);
if (!map.containsKey(randomNumber)) {
// Если карта еще не содержит "выпавшего случайного числа"
// Положим его в карту с кол-вом выпадений = 1
map.put(randomNumber, 1);
} else {
// Иначе, увеличим количество выпадений данного числа на 1
map.put(randomNumber, map.get(randomNumber) + 1);
}
}
// Выведем на экран содержимое карты в формате ключ=[meaning]
for (Map.Entry<Integer, Integer> entry : map.entrySet()){
System.out.println(String.format("%d=[%d]", entry.getKey(), entry.getValue()));
}
}
static int randomInARange(int min, int max) {
return (int) (Math.random() * ((max - min) + 1)) + min;
}
}
运行 main 方法后,输出可能如下所示:
-10=[482]
-9=[495]
-8=[472]
-7=[514]
-6=[457]
-5=[465]
-4=[486]
-3=[500]
-2=[490]
-1=[466]
0=[458]
1=[488]
2=[461]
3=[470]
4=[464]
5=[463]
6=[484]
7=[479]
8=[459]
9=[503]
10=[444]
Process finished with exit code 0
四舍五入
对于 Java 中的数字舍入,工具之一是 Math 类的方法。更准确地说,圆形、天花板和地板方法:- 静态长圆(双A)
- 静态 int round(float a)
- 静态双层(双A)
- 静态双层天花(双A)
public static void main(String[] args) {
System.out.println(Math.round(1.3)); // 1
System.out.println(Math.round(1.4)); // 1
System.out.println(Math.round(1.5)); // 2
System.out.println(Math.round(1.6)); // 2
System.out.println(Math.floor(1.3)); // 1.0
System.out.println(Math.floor(1.4)); // 1.0
System.out.println(Math.floor(1.5)); // 1.0
System.out.println(Math.floor(1.6)); // 1.0
System.out.println(Math.ceil(1.3)); // 2.0
System.out.println(Math.ceil(1.4)); // 2.0
System.out.println(Math.ceil(1.5)); // 2.0
System.out.println(Math.ceil(1.6)); // 2.0
}
结论
在这篇文章中,我们对数学课进行了粗浅的了解。我们研究了如何使用此类:- 计算值的模;
- 计算三角函数的值;
- 计算数字的幂;
- 提取平方根和立方根;
- 生成随机数;
- 整数。
GO TO FULL VERSION