C#で上三角行列を表示するプログラムの作成方法
上三角行列とは
上三角行列(Upper Triangular Matrix)とは、主対角線より下側にあるすべての要素が0である行列のことです。主対角線およびその上側の要素は任意の値を持つことができます。
実装のポイント
上三角行列を表示するには、行列の各要素について「行番号 i が列番号 j 以下かどうか」を判定します。以下の条件を使用します。
if (i <= j)
Console.Write(A[i, j] + "\t");
else
Console.Write("0\t");
この条件により、主対角線より下側の要素には自動的に0が出力されます。
C#でのサンプルコード
以下のコードを実行すると、入力した行列を上三角行列として表示できます。
using System;
class Demo {
static void Main() {
int m, n, i, j;
Console.Write("行列の行数と列数を入力してください: ");
m = Convert.ToInt16(Console.ReadLine());
n = Convert.ToInt16(Console.ReadLine());
int[] A = new int[10, 10];
Console.Write("\n要素を入力してください:\n");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
A[i, j] = Convert.ToInt16(Console.ReadLine());
}
}
Console.WriteLine("\n上三角行列:");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
if (i <= j)
Console.Write(A[i, j] + "\t");
else
Console.Write("0\t");
}
Console.WriteLine();
}
Console.ReadLine();
}
}
実行結果
3×3の行列に値を入力して実行した場合の出力例は次のとおりです。
行列の行数と列数を入力してください:
3
3
要素を入力してください:
1
2
3
4
5
6
7
8
9
上三角行列:
1 2 3
0 5 6
0 0 9
まとめ
上三角行列の表示は、二重ループ内で i <= j の条件判定を行うだけで簡単に実装できます。条件を i >= j に変更すれば下三角行列の表示にも応用できます。この手法はガウスの消去法など線形代数の計算でも頻繁に使われるため、しっかり理解しておきましょう。
-
C++で対合行列(インボリュートリー行列)を判定するプログラムの実装方法
行列 M[r][c] が与えられたとき、「r」は行数、「c」は列数を表します。ここでは r = c、つまり正方行列である場合を考えます。この記事では、与えられた正方行列が対合行列(インボリュートリー行列)であるかどうかを判定する方法を解説します。 対合行列とは 対合行列とは、ある行列を自分自身と掛け合わせたとき、その積が単位行列になるような行列のことです。単位行列 I とは、主対角成分がすべて 1 で、それ以外の要素がすべて 0 である行列を指します。 したがって、行列 M が対合行列であるための必要十分条件は次のように表せます。 M × M = I ここで、M は任意の行列、I は単位行列で
-
C++でグラフの隣接行列を実装する方法【サンプルコード付き解説】
隣接行列とは グラフの隣接行列(Adjacency Matrix)とは、V×Vのサイズを持つ正方行列のことです。ここでVはグラフGの頂点数を表します。行列の行と列にはそれぞれ頂点が対応付けられ、頂点iから頂点jへの辺が存在する場合は、i行目・j列目の要素に1が格納されます(重み付きグラフの場合は、辺の重みなどの非ゼロの値が入ります)。辺が存在しない場合は0が格納されます。 なお、無向グラフの場合、辺は双方向につながりを持つため、隣接行列は必ず対称行列になります。つまり、adj[i][j]とadj[j][i]は常に同じ値となります。 隣接行列表現の計算量 空間計算量: 隣接行列にはO(V²)