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

与えられた行列がC#を使用してテプリッツ行列であるかどうかを確認するにはどうすればよいですか?


左上から右下までのすべての対角線が同じ要素を持っている場合、行列はテプリッツです。

例1

[[1,2,3,4],
[5,1,2,3],
[9,5,1,2]]

出力

true

上記のグリッドでは、対角線は-

です。
"[9]", "[5, 5]", "[1, 1, 1]", "[2, 2, 2]", "[3, 3]", "[4]".

各対角線ではすべての要素が同じであるため、答えは真です。

例2

Input: matrix
[[1,2],
[2,2]]

出力

false

対角線の「[1、2]」にはさまざまな要素があります

コード

public class Matrix
   {
   public bool ToeplitzMatrix(int[,] mat)
   {
      int row = getMatrixRowSize(mat);
      int col = getMatrixColSize(mat);
      for (int i = 1; i < row; i++)
      {
         for (int j = 1; j < col; j++)
         {
            if (mat[i, j] != mat[i - 1, j - 1])
            {
               return false;
            }
         }
      }
      return true;
   }
   private int getMatrixRowSize(int[,] mat)
   {
      return mat.GetLength(0);
   }
   private int getMatrixColSize(int[,] mat)
   {
      return mat.GetLength(1);
   }
}
static void Main(string[] args)
   {
      Matrix m = new Matrix();
      int[,] mat = new int[3, 4] { { 1, 2, 3, 4 }, { 5, 1, 2, 3 }, { 9, 5, 1, 2 } };
      Console.WriteLine(m.ToeplitzMatrix(mat));
   }

出力

TRUE

  1. 与えられた行列がPythonでテプリッツ行列であるかどうかをチェックするプログラム

    行列Mがあるとすると、それがテプリッツ行列であるかどうかを確認する必要があります。ご存知のように、左から右に下がるすべての対角線が同じ値を持つ場合、行列はテプリッツと呼ばれます。 したがって、入力が次のような場合 7 2 6 3 7 2 5 3 7 その場合、出力はTrueになります。 これを解決するには、次の手順に従います- 最後の行を除く各行iについて、実行します 最後の列を除く各列について、 matrix [i、j]がmatrix [i + 1、j + 1]と同じでない場合、 Falseを返す Trueを返す

  2. Pythonを使用して数値が素数であるかどうかを確認するにはどうすればよいですか?

    この問題の次の解決策で使用される原則は、与えられた数を3からすべての平方根で割ることです。数の平方根は可能な最大の要因であり、それを超えると、それをチェックする必要はありません。は他の数で割り切れて、素数であると判断します。 この関数は、2で割り切れる2未満のすべての数値に対してfalseを返します。その他の場合、すべての戻り値)関数は、平方根までの任意の数値で割り切れる場合はfalseになり、そうでない場合はtrueになります。任意の数で割り切れる 例 def is_prime(a):     if a < 2: