跳至内容

算法实现/数学/勾股定理

来自维基教科书,开放的书籍,开放的世界
勾股定理:直角边(ab)上的两个正方形的面积之和等于斜边(c)上的正方形的面积。

在数学中,勾股定理毕达哥拉斯定理是欧几里得几何中关于直角三角形(直角三角形)的三边之间的关系。就面积而言,它指出

在任何直角三角形中,斜边(与直角相对的边)为边的正方形的面积等于两条直角边(两条在直角处相交的边)为边的正方形的面积之和。

该定理可以用一个关于边长 abc 的等式来写,通常称为勾股方程[1]

其中 c 表示斜边的长度,ab 表示另外两边的长度。

注意:对于大多数语言,内置的 hypot 函数执行相同的计算。这仅供教育目的。

(define (hypotenuse a b) (sqrt (+ (expt a 2) (expt b 2))))

;; Equivalent, but does not check the number of arguments
(define (hypotenuse . xs) (sqrt (fold (lambda (x acc) (+ (expt x 2) acc)) 0 xs)))

Visual Basic

[编辑 | 编辑源代码]
Function Hypotenuse(sideA as Double, sideB as Double) as Double
    Hypotenuse = sqr(sideA^2 + sideB^2)
End Function
public static double hypotenuse(double sideA, double sideB) {
    double hypotenuse = Math.sqrt((sideA*sideA) + (sideB*sideB));
    return hypotenuse;
}
def hypotenuse(a,b):
    return ( a**2 + b**2 )**.5
pythag a b = sqrt $ a^2 + b^2

Javascript

[编辑 | 编辑源代码]
const hypotenuse = (a,b) => Math.sqrt(a**2 + b**2)

参考资料

[编辑 | 编辑源代码]
  1. Judith D. Sally, Paul Sally (2007). "第 3 章:勾股数". 从根源到研究:数学问题的纵向发展. 美国数学会书店. p. 63. ISBN 0821844032.
华夏公益教科书