一部のアプリケーションでは、2 次元配列または行列を使用すると大きなメリットが得られます。
数値は行列の行と列に格納されます。多次元配列を使用すると、
2D 行列は C でも定義できます。この記事ではCの使い方を学びます。
指定された行列の法線とトレースを決定します。
行列の要素の総数の平方根は、いわゆる
普通。トレースは、主対角線を構成するすべてのコンポーネントで構成されます。私たちにさせて
C コードでのアルゴリズムの表現を表示します。
マトリックス トレース
$\begin{bmatrix}
8 & 5& 3\改行
6 & 7& 1\改行
2 & 4& 9\改行
\end{bmatrix},$
主対角線上のすべての要素の合計: (8 7 9) = 24、これは指定された行列のトレースです
前の例では、3 x 3 行列が使用され、結果は各行列の合計になります。
主対角線の要素の数。マトリックスの痕跡は合計で見つけることができます。私たちにさせて
アルゴリズムを見てみると理解が容易になります。
###アルゴリズム###
行列 M を入力として読み取ります
- M に n 行 n 列があるとします。
- 合計: = 0
- i が 1 から n までの場合、実行します。
- sum := sum M[ i ][ i ]合計を返します
-
###例###
リーリー
###出力###
リーリー
行列法線-
$\begin{bmatrix}
8 & 5& 3\改行
6 & 7 & 1\改行
2 & 4& 9\改行
\end{bmatrix},$
すべての要素の合計: (8 5 3 6 7 1 2 4 9) = 45
通常: (すべての要素の合計の平方根) = √45 = 6.708
前の例では、3 x 3 行列が使用されました。まずすべてのエントリの合計を計算します
平方根を求める前に。理解を助けるためにアルゴリズムを見てみましょう。
###アルゴリズム###
行列 M を入力として読み取ります
M に n 行 n 列があるとします。
合計は0に初期化されます
i が 1 から n までの場合、実行します。
j が 1 から n までの場合、次を実行します。
- sum := sum M[ i ][ j ]
-
###仕上げる###
-
###仕上げる###
- res := 合計の平方根
- 結果を返す
-
###例###
リーリー
###出力###
リーリー
###結論は###
i>通常操作とトレース操作は行列に属します。これら 2 つのプロセスで必要となるのは、
正方行列、これが必要なものです (正方形のトレースが必要なため)。痕跡の合計は
行列の主対角線に含まれる要素、法線は単なる
行列に含まれる要素の総数の平方根。 C では、行列は次のことができます。
2次元配列を使用して表示します。ここでは 5 行 5 列の 2 つの行列を選択しました。
例 (合計 25 要素)。行列にはループ ステートメントを通じてアクセスする必要があります
そしてインデックス操作。一般的な処理を実行するには、2 つのネストされたループが必要です。
計算するときは、各要素を反復処理する必要があります。このプログラムの複雑さは O(n
2 ) です。
追跡には主対角線のみが必要なため、行と列のインデックスは次のようになります。
同一。したがって、必要なのは for ループのみです。 O(n) 時間で決定されます。 -
以上が指定された行列のトレースと法線を見つける C++ プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。