2 つの行列の乗算

C++C++Beginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、C++ プログラミング言語で 2 つの行列(2 次元配列)の積を見つける方法を学びます。簡単なステップに分けて解説するので、初心者でも難なく理解できます。

必要なヘッダーファイルをインクルードする

以下のコマンドを使用して、~/project ディレクトリに新しいファイル main.cpp を作成します。

touch ~/project/main.cpp

最初のステップでは、必要なヘッダーファイルをインクルードする必要があります。

#include <iostream>

入力を受け取り、出力を表示するために iostream ファイルを使用します。

main() 関数を定義する

2 番目のステップでは、main 関数を宣言します。

int main() {

変数を定義する

3 番目のステップでは、入力行列と乗算結果を格納するための変数を宣言する必要があります。

int row1, col1, row2, col2, i, j, k;
int m1[10][10], m2[10][10], pro[10][10];

ここで、row1 と col1 はそれぞれ 1 つ目の行列の行数と列数を表し、row2 と col2 はそれぞれ 2 つ目の行列の行数と列数を表します。m1、m2、および pro 変数は 2 つの入力行列と積行列を表します。

ユーザーから入力を取得する

4 番目のステップでは、ユーザーから行列を取得します。

std::cout << "\nEnter the number of Rows and Columns of first matrix : ";
std::cin >> row1 >> col1;

std::cout << "\nEnter the number of Rows and Columns of second matrix : ";
std::cin >> row2 >> col2;

// input of first matrix
std::cout << "\nEnter the " << row1 * col1 << " elements of first matrix : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col1; j++) {
        std::cin >> m1[i][j];
    }
}

// input of second matrix
std::cout << "\nEnter the " << row2 * col2 << " elements of second matrix : \n";
for (i = 0; i < row2; i++) {
    for (j = 0; j < col2; j++) {
        std::cin >> m2[i][j];
    }
}

ここでは、2 つの行列の行数と列数についてユーザーから入力を受け取り、その後、行列の各要素について入力を受け取ります。

行列を乗算する

5 番目のステップでは、行列を乗算します。

if (col1 == row2) {
    for (i = 0; i < row1; i++) {
        for (j = 0; j < col2; j++) {
            pro[i][j] = 0;
            for (k = 0; k < col1; k++)
                pro[i][j] = pro[i][j] + (m1[i][k] * m2[k][j]);
        }
    }
}

ここでは、まず行列が乗算可能かどうかを確認します。もしそうなら、導入部で説明したように乗算を行います。

行列を表示する

6 番目のステップでは、行列を表示します。

std::cout << "\nThe first matrix is : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col1; j++) {
        std::cout << m1[i][j] << "  ";
    }
    std::cout << std::endl;
}

std::cout << "\nThe second matrix is : \n";
for (i = 0; i < row2; i++) {
    for (j = 0; j < col2; j++) {
        std::cout << m2[i][j] << "  ";
    }
    std::cout << std::endl;
}

std::cout << "\nThe Product matrix is : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col2; j++) {
        std ::cout << pro[i][j] << "  ";
    }
    std::cout << std::endl;
}

まず、2 つの行列を表示し、その後、結果となる行列を表示します。

コードをコンパイルして実行する

コードをコンパイルするには、ターミナルを開き、コードファイルが保存されているディレクトリに移動します。次に、コードをコンパイルするために次のコマンドを実行します。

g++ main.cpp -o main

コードが正常にコンパイルされた後、次のコマンドを実行してプログラムを実行します。

./main

まとめ

おめでとうございます!C++ プログラミング言語で 2 つの行列の乗算を求める方法を学びました。行列が乗算可能かどうかを確認する方法、行列を乗算する方法、および入力と結果の行列を表示する方法を学びました。Linux 環境でコードをテストし、コードをコンパイルして実行する方法を学びました。