対角線を埋めて、c ++を使用して、すべての行、列、および対角線の合計を3×3行列に等しくします。
最初は対角要素が空である3x3行列が1つあるとします。行、列、対角線の合計が同じになるように対角線を塗りつぶす必要があります。行列が-
のようなものであると仮定します
充填後は−
対角要素がx、y、zであると仮定します。値は-
になります- x =(M [2、3] + M [3、2])/ 2
- z =(M [1、2] + M [2、1])/ 2
- y =(x + z)/ 2
例
#include<iostream> using namespace std; void displayMatrix(int matrix[3][3]) { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) cout << matrix[i][j] << " "; cout << endl; } } void fillDiagonal(int matrix[3][3]) { matrix[0][0] = (matrix[1][2] + matrix[2][1]) / 2; matrix[2][2] = (matrix[0][1] + matrix[1][0]) / 2; matrix[1][1] = (matrix[0][0] + matrix[2][2]) / 2; cout << "Final Matrix" << endl; displayMatrix(matrix); } int main() { int matrix[3][3] = { { 0, 3, 6 }, { 5, 0, 5 }, { 4, 7, 0 }}; cout << "Given Matrix" << endl; displayMatrix(matrix); fillDiagonal(matrix); }
出力
Given Matrix 0 3 6 5 0 5 4 7 0 Final Matrix 6 3 6 5 5 5 4 7 4
-
C++で対角行列とスカラー行列をチェックするプログラム
行列M[r][c]が与えられた場合、「r」は行数を示し、「c」はr=cが正方行列を形成するような列数を示します。与えられた正方行列が対角であるかどうかを確認する必要があります およびスカラー 対角の場合、行列かどうか およびスカラー マトリックスを作成し、結果にyesを出力します。 対角行列 正方行列m[][]は、主対角を除く要素がゼロの場合にのみ対角行列になります。 下の図のように- ここで、赤の要素は主対角線であり、主対角線がゼロであることを除いてゼロ以外の残りの要素であり、対角行列になっています。 。 例 Input: m[3][3] = { {7, 0, 0},  
-
C#を使用して行ごとおよび列ごとに増加した行列を検索するにはどうすればよいですか?
この問題の根本的な解決策は、入力行列に格納されているすべての要素をスキャンして、指定されたキーを検索することです。行列のサイズがMxNの場合、この線形探索アプローチにはO(MN)時間がかかります。 行列は、並べ替えられた1次元配列として表示できます。入力行列のすべての行が上から下の順序で連結されている場合、ソートされた1次元配列を形成します。そして、その場合、二分探索アルゴリズムはこの2D配列に適しています。以下のコードは、2次元配列と検索キーを入力として受け取り、見つかった検索キーの成功または失敗に応じてtrueまたはfalseを返す関数SearchRowwiseColumnWiseMat