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

C++のラテン方格


ラテン方格は、特別なパターンを持つ行列です。パターンを調べるためにさまざまな例を見てみましょう。

1 2
2 1

1 2 3
3 1 2
2 3 1

1 2 3 4
4 1 2 3
3 4 1 2
2 3 4 1

上記の例でわかるように、取得するラテン方格のサイズは異なります。ただし、上記の行列のパターンを注意深く観察すると、前の行の最後の番号が次の行の最初の要素として表示されることがわかります。

それがラテン方格に隠されたパターンです。入力nに対して上記の行列を生成するプログラムを作成する必要があります。

アルゴリズム

  • nを任意の数で初期化します。
  • 値n+1で数値を初期化し、first_half_endと呼びます。
  • 1からnまでの両方を含むループを記述します。
    • first_half_endの値をfirst_half_startという変数に割り当てます。
    • first_half_startが値nに達するまでループを記述します。
      • 反復変数、つまりfirst_half_startを出力します。
    • 1からfirst_half_endまで繰り返すループを作成します。
      • 反復変数を出力します。
    • first_half_endの値を1デクリメントします。
    • 次の行を移動します。

実装

以下は、C++での上記のアルゴリズムの実装です

#include <bits/stdc++.h>

using namespace std;

void generateLatinSquare(int n) {
   int first_half_end = n + 1;

   for (int i = 1; i <= n; i++) {
      int first_half_start = first_half_end;
      while (first_half_start <= n) {
         cout << first_half_start << " ";
         first_half_start++;
      }

      for (int second_half_start = 1; second_half_start < first_half_end; second_half_start++){
         cout << second_half_start << " ";
      }
      first_half_end--;
   cout << endl;
   }
   cout << endl;
}

int main(void) {
   generateLatinSquare(2);
   generateLatinSquare(3);
   generateLatinSquare(4);
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

1 2
2 1

1 2 3
3 1 2
2 3 1

1 2 3 4
4 1 2 3
3 4 1 2
2 3 4 1


  1. C++の正方形の外接円の面積

    この問題では、正方形の辺が与えられたときに、正方形の外接円の面積を計算します。先に進む前に、概念をよりよく理解するために基本的な定義を修正しましょう。 正方形 はすべての辺が等しい四辺形です。 外接円 円はポリゴンのすべての頂点に接しています。 エリア は、任意の2次元図形の範囲を定量的に表したものです。 正方形の外接円の面積を計算します。円と正方形のパラメータの関係を見つける必要があります。 これで、図のように、正方形のすべての頂点が円に接触しています。この図を見ると、正方形の対角線は円の直径に等しいと結論付けることができます。 これを使用して、円の直径と正方形の辺の関係を

  2. C++でのAreaOfSquareのプログラム

    長方形の辺が与えられ、その辺から正方形の領域を印刷することがタスクです。 正方形は、4つの辺を持ち、それぞれ90度の4つの角度を形成し、すべての辺が同じ形状の2D平面図形です。言い換えれば、正方形は辺が等しい長方形の形であると言えます。 以下に示すのは正方形の表現です- 正方形の面積はSidexSide 例 Input: 6 Output: 36 As the side is 6 so the output is 6*6=36 Input: 12 Output: 144 アルゴリズム START    Step 1-> Declare a functio