std::hypot

提供: C++入門
2015年10月31日 (土) 21:23時点におけるDaemon (トーク | 投稿記録)による版

移動: 案内検索
スポンサーリンク

std::hypot とは、数値計算用の関数で、平方和の平方根を求めます。hypotは、hypotenuse の略で、 hypotenuseは、斜辺という意味です。直角三角形の辺を求める式になります。

読み方

std::hypot
えすてぃーでぃー
hypotenuse
はいぽーてぃねす

概要

std::hypotは、平方和の平方根を求める数値計算用の関数です。

sqrt()は、平方根を求める関数です。sqrt()を利用した場合、

 z = sqrt(x*x, y*y);

のようになります。 std::hypotを利用した場合、以下のように書けます。

 z = std::hypot(x,y);

C++だと簡単に書ける、ということになります。

蛇足になりますが、C言語では、C99でhypotが追加されています。

三平方の定理の定理

ここは、数学のおさらいになります。三平方の定理がわかっている方は、読み飛ばしてください。 直角三角形があり、それぞれの3辺を

x
y
z

としたとき、3辺の長さは、

z2 = x2 + y2

が成り立ちます。これは、三平方の定理と呼ばれています。3辺のうち、2辺の長さがわかっているときに、残りの1辺の長さを求められます。

上の定理は、以下のように書けます。 z =  x2 + y2 

std::hypotは、2辺の値から残りの1辺の長さを求めます。

インストール

C++11 から利用できるようになりました。

ヘッダファイル

#include <cmath>

ソースコード

/*
 * hypot1.cpp
 * Copyright (C) 2015 kaoru <kaoru@localhost>
 */
#include <iostream>
#include <cmath>
 
int main(int argc, char const* argv[])
{
        std::cout << "hypot(1.0, 1.0) = " << std::hypot(1.0, 1.0) << std::endl;
        std::cout << "hypot(3.0, 4.0) = " << std::hypot(3.0, 4.0) << std::endl;
        return 0;
}

コンパイル

c++ hypot1.cpp

実行例

$ ./a.out
hypot(1.0, 1.0) = 1.41421
hypot(3.0, 4.0) = 5

関連項目




スポンサーリンク