Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで単位行列を出力するプログラムの作成方法

単位行列とは、対角成分がすべて「1」、それ以外の成分がすべて「0」である正方行列のことです。線形代数において重要な役割を果たす行列であり、Pythonでは二重ループ(ネストされたループ)を使うことで簡単に出力できます。

本記事では、n次の単位行列をコンソールに表示する具体的な方法を、サンプルコードとともに解説します。

サンプルコード

以下は、サイズ n = 4 の単位行列を出力するPythonプログラムの例です。

n = 4
print("nの値は " + str(n) + " に初期化されました")
for i in range(0, n):
    for j in range(0, n):
        if i == j:
            print("1", sep=" ", end=" ")
        else:
            print("0", sep=" ", end=" ")
    print()

実行結果

nの値は 4 に初期化されました
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

処理の流れと解説

  • まず、行列のサイズとなる変数 n を初期化します。
  • 外側の for ループが 0 から n-1 まで繰り返されます。これは行列のに対応します。
  • その内側で、もう一つのネストされた for ループが同じく 0 から n-1 まで繰り返されます。これはに対応します。
  • 外側のループ変数 i と内側のループ変数 j が等しい場合、つまり対角成分にあたる位置では「1」が出力されます。
  • i と j が一致しない場合は「0」が出力されます。
  • 各行の出力が終わったタイミングで print() を呼び出し、改行することで行列の形を保っています。

ポイント

print() 関数の end=" " 引数を指定することで、改行せずに同じ行へ続けて出力できます。また、内側のループが完了した後に引数なしの print() を呼び出すことで、改行を挿入しています。この組み合わせにより、見やすい行列形式での出力が実現できます。

さらに、リスト内包表記やNumPyライブラリの numpy.identity() 関数を使用すれば、より簡潔に単位行列を生成することも可能です。ただし、基本的な仕組みを理解するには、今回のような二重ループによる実装が最適です。

  1. Pythonでグラフの頂点間の到達可能性行列を計算するプログラム

    隣接リスト形式で表現されたグラフが与えられたとき、次のような条件を満たす2次元行列Mを求めることを考えます。M[i, j] = 1:頂点iから頂点jへの経路(パス)が存在する場合M[i, j] = 0:経路が存在しない場合例えば、次のようなグラフが入力として与えられたとします。この場合の出力は、以下の5×5の行列になります。1111101111011110111101111解法のアプローチこの問題は、各頂点を起点とした幅優先探索(BFS)を用いることで効率的に解くことができます。具体的な手順は以下の通りです。n×nの2次元行列「ans」を作成し、すべての要素を0で初期化します(nは頂点の総数)

  2. 2つの行列を乗算するPythonプログラム

    ユーザーが入力した2つの行列を受け取り、その積(乗算結果)を表示するのがこのプログラムの目的です。ここでは、ネストされたリスト(2次元リスト)を使って行列を表現します。 行列の乗算では、「1つ目の行列の行の要素」と「2つ目の行列の列の要素」をそれぞれ掛け合わせ、その合計値を結果行列の要素とします。つまり、結果行列の i 行 j 列の値は、行列Aの i 行目と行列Bの j 列目の対応する要素同士の積の総和になります。 アルゴリズム ステップ1:2つの行列を入力する。 ステップ2:ネストされたforループで、各行・各列を順番に走査する。 ステップ3:すべての要素が0で初期化された結果用行列を用