C++で行列(マトリックス)内の全要素数を求める方法
ここでは、n行 × m列の行列が与えられたとき、その中に含まれる要素の総数を求める方法を解説します。計算した結果は、出力として表示します。
例えば、入力が n = 20、m = 15 の場合、出力は 300 になります。
考え方と手順
行列の各行には m 個の要素が含まれており、それが n 行分並んでいるため、要素の総数は単純に行数と列数を掛け合わせるだけで求められます。この問題を解くための手順は以下の通りです。
- 行数 n と列数 m を受け取る
- 「n × m」を計算して返す
return n * m;
実装例
理解を深めるために、以下のC++による実装例を見てみましょう。
#include <bits/stdc++.h>
using namespace std;
#define N 100
int solve(int n, int m) {
return n * m;
}
int main() {
int n = 20, m = 15;
cout << solve(n, m);
return 0;
}入力
20, 15
出力
300
計算量について
このアルゴリズムは掛け算を1回行うだけなので、時間計算量は O(1)、空間計算量も O(1) となります。行列のサイズがどれほど大きくても、一定の時間で要素数を求められる非常に効率的な方法です。
-
C++で行列の基底と次元を求めるプログラムの作り方
本記事では、行列の基底(basis)と次元(dimension)を求めるためのC++プログラムを紹介します。 基底と次元とは 線形代数における基底とは、ベクトル空間全体を張る線形独立なベクトルの集合のことです。そして次元とは、その基底に含まれるベクトルの個数を指します。 n個のベクトルがR^n(n次元実ベクトル空間)の基底を成すかどうかは、それらを並べてできるn次正方行列の行列式を計算すれば判定できます。行列式が0でなければベクトル群は線形独立であり、R^nの基底となります。逆に行列式が0であれば、ベクトル群は線形従属のため基底にはなりません。 アルゴリズム このプログラムでは、determi
-
C++で行列の転置を求めるプログラムの書き方【サンプルコード付き解説】
行列とは、数値を行と列の形式に整理して並べた長方形の配列のことです。そして「転置行列」とは、元の行列の行を列に、列を行に入れ替えて作られる新しい行列を指します。転置行列のイメージ例として、次のような3×3の行列を見てみましょう。1 2 3 4 5 6 7 8 9この行列を転置すると、次のようになります。1 4 7 2 5 8 3 6 9元の行列の1行目(1, 2, 3)が、転置後には1列目になっていることが分かります。このように、元の行列の要素 a[i][j] は、転置後には a[j][i] の位置へ移動します。C++による転置行列を求めるプログラム以下が、C++で行列の転置を求めるプログラム