C++のnorm()関数とは?使い方と具体例をわかりやすく解説
本記事では、C++ STLにおけるnorm()関数の仕組み、構文、そして具体的な使用例について詳しく解説します。
norm()関数とは?
norm()関数は、C++ STLに標準で用意されている組み込み関数の一つで、<complex>ヘッダーファイル内で定義されています。この関数は、複素数のノルム(norm)値を取得するために使用されます。
複素数のノルム値とは、その数の絶対値(大きさ)を二乗したものを指します。つまり、この関数は複素数の実部と虚部を含めた大きさの二乗を計算する役割を果たします。
構文
double norm(ArithmeticType num);
パラメータ
この関数は以下のパラメータを受け取ります。
- num − 処理対象となる複素数の値。
戻り値
この関数は、引数numのノルム値を返します。
使用例
入力
complex<double> comp_num(6.9, 2.6); norm(comp_num);
出力
The value of norm of (6.9,2.6) is 54.37
この結果は、(6.9 + 2.6i) のノルム値が「6.9² + 2.6² = 47.61 + 6.76 = 54.37」として計算されることを示しています。
サンプルコード1
#include <bits/stdc++.h>
using namespace std;
int main (){
complex<double> comp_num(6.9, 2.6);
cout<<"The value of norm of " << comp_num<< " is ";
cout << norm(comp_num) << endl;
return 0;
}出力
The value of norm of (6.9,2.6) is 54.37
サンプルコード2
#include <bits/stdc++.h>
using namespace std;
int main (){
complex<double> comp_num(2.4, 1.9);
cout<<"The value of norm of " << comp_num<< " is ";
cout << norm(comp_num) << endl;
return 0;
}出力
The value of norm of (2.4,1.9) is 9.37
-
C++で指定された値を持つ葉ノードを削除するアルゴリズム
問題の概要二分木と整数 target が与えられたとき、値が target と一致するすべての葉ノードを削除することを考えます。ここで重要なのは、葉ノードを削除した結果、その親ノードが新たに葉ノードになり、かつその値が target と一致する場合には、その親ノードも同様に削除しなければならないという点です。この操作は、削除できるノードがなくなるまで繰り返し行います。例えば、下図のような二分木があり、target が 2 の場合、最終的な木は次のようになります。解法のアプローチこの問題は、再帰を用いた後順(ボトムアップ)処理によって効率的に解くことができます。具体的な手順は以下の通りです。ルー
-
C++でべき乗(pow)関数を自作する方法
べき乗関数(power function)は、基数と指数という2つの数値を受け取り、基数を指数回だけ掛け合わせた結果(累乗)を求めるための関数です。例を見てみましょう。基数 = 2 指数 = 5 2^5 = 32 つまり、2の5乗は32になります。ここでは、標準ライブラリの pow() 関数に頼らず、C++でべき乗計算を自前で実装する方法を紹介します。サンプルプログラム#include <iostream> using namespace std; int main(){ int x, y, ans = 1; cout << 基数を入力してくださ