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

C++でドラゴン曲線シーケンスのn番目の項を検索します


ここでは、ドラゴン曲線シーケンスのn番目の項を見つけることができるプログラムが表示されます。ドラゴン曲線シーケンスは、無限のバイナリシーケンスです。 1から始まり、各ステップで、前の項の各要素の前後に1と0を交互に追加して、次の項を形成します。

  • 用語1:1
  • 用語2:110
  • 用語3:1101100
  • 用語4:110110011100100

1から始めて、前の用語の各要素の後に1と0を追加します。得られた新しい用語が現在の用語になったら、1からnまでの手順を繰り返して、次の用語を生成します。

#include <iostream>
using namespace std;
string dragCurveTerm(int n) {
   string term = "1";
   for (int i = 2; i <= n; i++) {
      string temp = "1";
      char prev = '1', zero = '0', one = '1';
      for (int j = 0; j < term.length(); j++) {
         temp += term[j]; //take character from original string
         if (prev == '0') {
            temp += one;
            prev = one;
         } else {
            temp += zero;
            prev = zero;
         }
      }
      term = temp;
   }
   return term;
}
int main() {
   cout << "4th term of Dragon Curve Sequence: " << dragCurveTerm(4);
}

出力

4th term of Dragon Curve Sequence: 110110011100100

  1. C++の曲線上の特定の点で接線を見つけます

    y =x(A --x)のような曲線があるとすると、その曲線上の特定の点(x、y)で接線を見つける必要があります。ここで、Aは整数であり、xとyも整数です。 これを解決するために、指定された点が曲線上にあるかどうかを確認します。そうである場合は、その曲線の微分を見つけます。したがって、- $$ \ frac {\ text {d} y} {\ text {d} x} =A-2x $$ 次に、xとyをdy / dxに入れ、この方程式を使用して接線を見つけます- $$ Y-y =-\ lgroup \ frac {\ text {d} y} {\ text {d} x} \ rgroup

  2. C++の曲線上の特定の点で法線を見つけます

    y =x(A --x)のような曲線があるとすると、その曲線上の特定の点(x、y)で法線を見つける必要があります。ここで、Aは整数であり、xとyも整数です。 これを解決するために、指定された点が曲線上にあるかどうかを確認します。そうである場合は、その曲線の微分を見つけます。したがって、- $$ \ frac {\ text {d} y} {\ text {d} x} =A-2x $$ 次に、xとyをdy / dxに入れ、この方程式を使用して法線を見つけます- $$ Y-y =-\ lgroup \ frac {\ text {d} x} {\ text {d} y} \ rgroup