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

与えられた2つの行列がC++で同一であるかどうかをチェックするプログラム


行数が「r」、列数が「c」の2つの行列M1[r][c]とM2[r][c]が与えられた場合、与えられた両方の行列が同一であるかどうかを確認する必要があります。それらが同一である場合は「マトリックスは同一です」と印刷し、そうでない場合は「マトリックスは同一ではありません」と印刷します

単位行列

-

の場合、2つの行列M1とM2は同一と呼ばれます。
  • 両方の行列の行と列の数は同じです。
  • M1[i][j]の値はM2[i][j]と同じです。

下の図のように、3x3の行列m1とm2はどちらも同じです-

$$ M1 [3] [3] =\ begin {bmatrix} 1&2&3 \\ 4&5&6 \\ 7&8&9 \\ \ end {bmatrix} \:\:\:\:M2 [3] [3] =\ begin {bmatrix} 1&2&3 \\ 4&5&6 \\ 7&8&9 \\ \ end {bmatrix} $$

Input: a[n][n] = { {2, 2, 2, 2},
   {2, 2, 2, 2},
   {3,3, 3, 3},
   {3,3, 3, 3}};
   b[n][n]= { {2, 2, 2, 2},
      {2, 2, 2, 2},
      {3, 3, 3, 3},
      {3, 3, 3, 3}};
Output: matrices are identical
Input: a[n][n] = { {2, 2, 2, 2},
   {2, 2, 1, 2},
   {3,3, 3, 3},
   {3,3, 3, 3}};
   b[n][n]= { {2, 2, 2, 2},
      {2, 2, 5, 2},
      {3, 3, 3, 3},
      {3, 3, 3, 3}};
Output: matrices are not identical

アプローチ

両方の行列a[i][j]とb[i][j]を反復し、a [i] [j] ==b [i] [j]をチェックして、すべてがtrueの場合は同じであり、そうでない場合は同じである同一ではありません。

アルゴリズム

Start
Step 1 -> define macro as #define n 4
Step 2 -> Declare function to check matrix is same or not
   int check(int a[][n], int b[][n])
      declare int i, j
      Loop For i = 0 and i < n and i++
         Loop For j = 0 and j < n and j++
            IF (a[i][j] != b[i][j])
               return 0
            End
      End
   End
   return 1
Step 3 -> In main()
   Declare variable asint a[n][n] = { {2, 2, 2, 2},
      {2, 2, 2, 2},
      {3, 3, 3, 3},
      {3, 3, 3, 3}}
   Declare another variable as int b[n][n] = { {2, 2, 2, 2},
      {2, 2, 2, 2},
      {3, 3, 3, 3},
      {3, 3, 3, 3}}
   IF (check(a, b))
      Print matrices are identical
   Else
      Print matrices are not identical
Stop

#include <bits/stdc++.h>
#define n 4
using namespace std;
// check matrix is same or not
int check(int a[][n], int b[][n]){
   int i, j;
   for (i = 0; i < n; i++)
      for (j = 0; j < n; j++)
         if (a[i][j] != b[i][j])
      return 0;
   return 1;
}
int main(){
   int a[n][n] = { {2, 2, 2, 2},
      {2, 2, 2, 2},
      {3, 3, 3, 3},
      {3, 3, 3, 3}};
   int b[n][n] = { {2, 2, 2, 2},
      {2, 2, 2, 2},
      {3, 3, 3, 3},
      {3, 3, 3, 3}};
   if (check(a, b))
      cout << "matrices are identical";
   else
      cout << "matrices are not identical";
   return 0;
}

出力

matrices are identical

  1. C++で3つのポイントが同一線上にあるかどうかをチェックするプログラム

    3つの異なる値のポイントが与えられ、タスクはポイントが同一線上にあるかどうかを確認することです。 ポイントが同じ線上にある場合は同一線上にあると言われ、異なる線上にある場合は同一線上にありません。以下に、同一線上および非同一線上の点の図を示します。 入力 x1 = 1, x2 = 2, x3 = 3, y1 = 1, y2 = 4, y3 = 5 出力 no points are not collinear 入力 x1 = 1, y1 = 1, x2 = 1, y2 = 4, x3 = 1, y3 = 5 出力 points are collinear 以下のプログラム

  2. 2つのツリーがC++で同一であるかどうかを判断するコードを記述します

    この問題では、2本の木が与えられます。私たちのタスクは、2つのツリーが同一であるかどうかを確認するコードを作成することです。 配列の要素が同じ値と方向を持っている場合、2つのツリーは同一であると言われます。 例 両方のツリーの値と要素の位置が同じであるため、両方のツリーは同じです。 2つのツリーが同一であるかどうかを確認するには、ノードノードからの各ノードに移動し、それらが等しいかどうかを段階的に確認します。ノードのいずれかのポイントが等しくない場合は、ツリーが同一でないことを示す-1を返します。ツリー全体がトラバースされるか、両方のツリーが空になり、ツリーが