加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

常用数学函数

发布时间:2022-10-30 14:31:49 所属栏目:MsSql教程 来源:未知
导读: 常用数学函数
要点提示:Java 在 Math 类中提供了许多实用的方法,来计算常用的數学函数。
方法是一组语句,用于执行一个特定的任务。我们已经使用过方法 pow(a,b)计算 V,也使用过幂操作,

常用数学函数

要点提示:Java 在 Math 类中提供了许多实用的方法,来计算常用的數学函数。

方法是一组语句,用于执行一个特定的任务。我们已经使用过方法 pow(a,b)计算 V,也使用过幂操作,以及 Math.randon() 方法来产生一个随机 数。本节介绍 Math 类中其他有用的方法。这些方法分为三类:三角函数方法(trigonometric method)、指教函数方法(exponent method) 和服务方法(service method)。服务方法包括取 整、求最小值、求最大值、求绝对值和随机方法。除了这些方法之外,Math 类还提供了两 个很有用的 double 型常量,PI ( TT ) 和 E (自然对数的底)。可以在任意程序中用Math.PI 和 Math.E 的形式来使用这两个常量。

1.三角函数方法:

Math 类包含下表中所示的三角函数方法。

Math 类中的三角函数方法

方法

描述

sin(radians)

返回以弧度为单位的角度的三角正弦函数值

cos(radians)

返回以弧度为单位的角度的三角余弦函数值

tan(radians)

返回以弧度为单位的角度的三角正切函数值

toRadians(degree)

将以度为单位的角度值转换为以弧度表示

toDegrees(radians)

将以弧度为单位的角度值转换为以度表示

asin(a)

返回以弧度为单位的角度的反三角正弦函数值

acos(a)

返回以弧度为单位的角度的反三角余弦函数值

atan(a)

返回以弧度为单位的角度的反三角正切函数值

sin、cos 和 tan 的参数都是以弧度为单位的角度。asin 和 atan的返回值是-TT /2~TT /2 的一个弧度值,acos 的返回值在 0到 TT之间。 1°相当于 TT /180 弧度,90°相当于 TT /2 弧度, 而 30°相当于 ir /6 弧度。

例如:

Math.toDegrees(Math.PI / 2) 返回 90.0

Math.toRadians(30)返回 0.5236 (n/6)

Math.sin(O) returns 0.0

Math.sin(Math.toRadians(270)) 返回-1.0

Math,sin(Math.PI / 6) 返回 0.S

Math,sin(Math.PI / 2)返回 1.0

Math.cos(0) 返回 1.0

Math,cos(Math.PI / 6) 返回 0.866

Math,cos(Math.PI / 2) 返回 0

Math.asin(O. 5)返回0. S23S98333 (n/6)

Math.acos(O.5) 返回 1.0472 (rt/3)

Math.atanfl.O) 返回 0.78S398 (n/4)

2.指数函数方法:

Math 类中有 5 个与指数函数有关的方法,

Math 类中的指数函数方法

方法

描述

exp(x)

返回e的 x 次方

log(x)

返回 X 的自然底数

log10(X)

返回x以10为底的对数

pow(a, b)

pow(a, b) 返回 a的b 次方

sqrt(x)

sqrt(x) 对于多的数字,返回 x 的平方根

例如Mssq数学函数

Math.exp(l ) 返回 2.71828

Math,log(Math.E) 返回 1.0

Math.loglO(lO) 返回 1.0

Math.pow(2, 3) 返回 8.0

Math.pow(3, 2) 返回 9.0

Math.pow(4.5, 2.5) 返回 22.9176S

Math.sqrt(4) 返回 2.0

Math.sqrt(lO.S) 返回 4.24

3.取整方法:

Math 类包括五个取整方法,如下表所示:

Math类中的取整方法

方法

描述

ceil(x)

x 向上取整为它最接近的整数。该整数作为一个双精度值返回

floor(x)

X 向下取整为它最接近的整数。该整数作为一个双精度值返回

rint(x)

X 取整为它最接近的整数。如果 X 与两个整数的距离相等,偶数的整数作为一个双精度值 返回

round(x)

如果 X 是单精度数,返回(int) Malh.floor(x+0.5); 如果 x 是双精度数,返回(long) Math. floor(x+0.5)

例如:

Math.ceil(2.1)    返回 3.0 
Math.ceil(2.0)    返回 2.0 
Math.ceil(-2.0)   返回-2.0 
Math.ceil(-2.1)   返回-2.0 
Math.floor(2.1)   返回 2.0 
Math.floor(2.0)   返回 2.0 
Math.floor(-2.0)  返回-2.0 
Math.floor(-2.1)  返回-3.0 
Math.rint(2.1)    返回 2.0 
Math.rint(-2.0)   返回-2.0 
Math.rint(-2.1)   返回-2.0 
Math.rint(2.S)    返回 2.0 
Math.rint(4.5)    返回 4.0 
Math.rint(-2.5)   返回-2.0 
Math.round(2.0f)  返回 3    // Returns int 
Math.round(2.0)   返回 2    // Returns long 
Math.round(-2.0f) 返回-2    // Returns int 
Math.round(-2.6)  返回-3    // Returns long 
Math.round(-2.4)  返回-2    // Returns long

4.min、max 和 abs 方法

min 和 max 方法用于返回两个数(int、long、float 或 double 型)的最小值和最大值。

例如,max(4.4,5.0) 返回 5.0, 而 min(3,2) 返回 2。

abs 方法以返回一个数(int、long、float 或 double 型)的绝对值

例如:

Math.max(2,3)      返回 3 
Math.max(2.5,3)    返回 3.0 
Math.min(2.5, 4.6) 返回 2.5 
Math.abs(-2)       返回 2 
Math.abs(-2.1)     返回 2.1

5.random 方法:

你 已 经 使 用 过 rando() 方 法,生 成 大 于 等 于 0.0 且 小 于 1.0的 double 型 随 机 数 (0.0 返回 0 ~ 9 之间的一个随机整数

so+ (int)(Math.random() * 50) ---------------> 返回 50 ~ 99 之间的一个随机整数

通常,

a + Math.randomO * b --------------->返回 a ~ a+b之间的一个随机整数,不包括 a+b

6.示例学习:计算三角形的角度

可以使用数学方法求解许多计算问题。比如,给定一个三角形的三条边,可以通过以下 公式计算角度。

别被这个数学公式所吓住。不需要知道数学公式是如何推导的,依然可以计算贷款支付。在这个例子中,给出三条边的长度,可以运用这个公式来编写 程序计算角度,而不需要知道这个公式是如何推导的。为了计算边长,需要知道三个顶点的 坐标,然后计算这些点之间的距离。

下面是一个示例程序,提示用户输入三角形三个顶点的x 和^坐标值,然后显示三个角 。

import java.util.Scanner; 
public class ComputeAngles { 
    public static void main(String[] args) { 
        Scanner input = new Scanner(System.in); 
        // Prompt the user to enter three points 
        System.out.print("Enter three points: "); 
        double xl = input.nextDouble(); 
        double yl = input.nextDouble(): 
        double x2 = input.nextDouble(); 
        double y2 = input.nextDouble(); 
        double x3 = input.nextDouble(); 
        double y3 = input.nextDouble();
         // Compute three sides 
        double a = Math.sqrt( ( x2 - x3)*( x2 - x3) + (y2 - y3)*( y2 - y3) ) ; 
        double b = Math.sqrt( (xl - x3)*(xl - x3)   + (yl - y3)*( yl - y3) ) ; 
        double c = Math.sqrt( (xl - x2)*(xl - x2)   + (yl - y2)*( yl - y2) ) ; 
         // Compute three angles 
        double A = Math.toDegrees(Math.acos( (a * a - b * b - c * c) / (-2 * b * c) ) ) ; 
        double B ? Math.toDegrees(Math.acos( (b * b - a * a - c * c) / (-2 * a * c) ) ) ; 
        double C = Math.toDegrees(Math.acos( (c * c - b * b - a * a) / (-2 * a * b) ) ) ; 
        // Display results 
        System.out.println("The three angles are " + 
        Math.round( A * 100)/ 100.0 + "'"  + 
        Math.round( B * 100)/ 100.0 + " " + 
        Math.round( C * 100)/ 100.0) ; 
    } 
}

运行结果:

程序提示用户输入三个顶点(第 8 行)。这个提示消息并不是很清晰,应该给予用户非 常清晰的提示,如下所示:

System,out.print("Enter the coordinates of three points separated " + "by spaces like x1 y1 x2 y2 x3 y3: ");

注意: 两个点(X1, y1),(X2, y2)之间的距离可以通过公式 Matn.pow(a,b) 计算。程序计算两个点之间的距离(第 17 ~ 22 行),并且应用该公式来计算角度(第 25 ~ 30行)。 显示的角度值保留小数点后两位数字(第 34 ~ 36行)。

Math 类在程序中使用,但是并没有导入,因为它在 java.lang 包中。在一个Java程序 中,java.lang 包中的所有类是隐式导入的。

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!