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