C++の行列の変更された平均よりも大きい要素の数
行列の修正平均は次のように定義されます...
(sum(row-wise min)+ sum(column-wise max))/(row_size + column_size)
例を見てみましょう。
1 2 3 4 5 6 7 8 9
平均=(sum(1 + 4 + 7)+ sum(7 + 8 + 9))/(3 + 3)
最初に平均を見つけてから、平均よりも大きい要素の数を数える必要があります。
上記の例をとると、カウントとして3が得られます。 6である平均よりも大きい3つの要素があります。
アルゴリズム
-
マトリックスを初期化します。
-
行ごとの最小要素の合計を求めます。
-
列ごとの最大要素の合計を求めます。
-
次に、上記の式で平均を求めます。
-
ここで、行列の平均よりも大きい要素の数を数えます。
実装
以下は、C++での上記のアルゴリズムの実装です
#include <bits/stdc++.h> using namespace std; #define m 3 #define n 3 int getElementCountGreaterThanMean(int matrix[][n]) { int rowSum = 0; for (int i = 0; i < m; i++) { int min = matrix[i][0]; for (int j = 1; j < n; j++) { if (matrix[i][j] < min){ min = matrix[i][j]; } } rowSum += min; } int colSum = 0; for (int i = 0; i < n; i++) { int max = matrix[0][i]; for (int j = 1; j < m; j++) { if (max < matrix[j][i]) { max = matrix[j][i]; } } colSum += max; } int mean = (rowSum + colSum) / (m + n); int count = 0; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (mean < matrix[i][j]) { count++; } } } return count; } int main() { int matrix[m][n] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; cout << getElementCountGreaterThanMean(matrix) << endl; return 0; }
出力
上記のコードを実行すると、次の結果が得られます。
3
-
C ++では、すべての要素がk以上になるまで配列の要素を追加します。
配列 −配列は、同じデータ型の要素のコンテナであり、その要素のインデックスは0です。 この問題では、整数の配列を使用します。そして、すべての要素が指定された数より大きいかどうかを確認します。ここでは、配列のすべての要素が指定された数k以上であるかどうかを確認します。そうでない場合は、配列の2つの最小要素を追加し、この合計を1つの要素として扱います。次に、新しいアレイの同じ条件を再度確認します。条件が真であることが判明した場合、合計が実行された回数が返されます。 Array = { 2, 6,3,12, 7} K = 5 Output : 1 説明 −最初に、すべての要素がkより大きいかどう
-
C++のCHAR_BIT
CHAR_BITは、charのビット数です。これは、C++言語の「limits.h」ヘッダーファイルで宣言されています。 1バイトあたり8ビットです。 これがC++言語のCHAR_BITの例です 例 #include <bits/stdc++.h> using namespace std; int main() { int x = 28; int a = CHAR_BIT*sizeof(x); stack<bool> s; cout << "T