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

C++での行列の平均と中央値


この問題では、サイズn*nの2D配列が与えられます。私たちのタスクは、C++で行列の平均と中央値を出力するプログラムを作成することです。

平均 設定された日付の平均です。マトリックスの平均は、マトリックスのすべての要素の平均です。

平均 =(行列のすべての要素の合計)/(行列の要素の数)

中央値 ソートされたデータセットの真ん中の要素です。このためには、マトリックスの要素を並べ替える必要があります。

中央値は次のように計算されます

nが奇数の場合、中央値=行列[n / 2] [n / 2]

nが偶数の場合、中央値=((matrix [(n-2)/ 2] [n-1])+(matrix [n / 2] [0]))/ 2

ソリューションの動作を説明するプログラム

#include <iostream>
using namespace std;
const int N = 4;
int calcMean(int Matrix[][N]) {
   int sum = 0;
   for (int i=0; i<N; i++)
      for (int j=0; j<N; j++)
         sum += Matrix[i][j];
      return (int)sum/(N*N);
   }
   int calcMedian(int Matrix[][N]) {
      if (N % 2 != 0)
         return Matrix[N/2][N/2];
      if (N%2 == 0)
         return (Matrix[(N-2)/2][N-1] + Matrix[N/2][0])/2;
}
int main() {
   int Matrix[N][N]= {
      {5, 10, 15, 20},
      {25, 30, 35, 40},
      {45, 50, 55, 60},
      {65, 70, 75, 80}};
   cout<<"Mean of the matrix: "<<calcMean(Matrix)<<endl;
   cout<<"Median of the matrix : "<<calcMedian(Matrix)<<endl;
   return 0;
}

出力

Mean of the matrix: 42
Median of the matrix : 42

  1. C ++でのMatrixのジグザグ(または対角)トラバーサル

    この問題では、2D行列が与えられます。私たちの仕事は、マトリックのすべての要素を対角線の順序で印刷することです。 問題を理解するために例を見てみましょう 1    2    3 4    5    6 7    8    9 出力- 1 4    2 7    5    3 8    6 9 マトリックスをジグザグ形式または対角形式で印刷するときに従うパターンを見てみましょう。 こ

  2. C++のスパイラルマトリックスIII

    R行とC列の2次元グリッドがあるとすると、東向きの(r0、c0)から開始します。ここで、グリッドの北西の角は最初の行と列にあり、グリッドの南東の角は最後の行と列にあります。このグリッドのすべての位置を訪問するために、時計回りのスパイラル形状で歩きます。グリッドの境界の外側にいるときは、グリッドの外側を歩き続けます(ただし、後でグリッドの境界に戻る場合があります)。グリッドの位置を表す座標のリストを、訪問した順序で見つける必要があります。したがって、グリッドが-のような場合 次に、矢印がパスになります。 これを解決するには、次の手順に従います- dirrを作成:=[[0,1]、[