1

そのため、任意の点 (a + ib) が与えられた場合、関数は、それがマンデルブロ セットに含まれている場合は 1 を返し、そうでない場合は n 回の反復に対して 0 を返します。

特に複素数を使用して、この関数をコーディングしようとすると問題が発生します。誰かが私を助けたり、始めるためのアドバイスをくれませんか?

これまでのところ、マンデルブロ集合に実数 (任意の x、y = 0) があるかどうかを判断する方法しか考えられません。

編集: C でコーディングしていることを忘れて申し訳ありませんが、主に疑似コードのアイデアを探しています。

4

2 に答える 2

1

セットのウィキペディアのページには、基本的な仕事を行ういくつかの疑似コードがあり、そのようなプロジェクトを行うことができる多くの方向のいくつかを示唆しています. 複雑な数学を理解することが重要です。複素数の実数部と虚数部を double のペアとして保持し、それらに対して必要な操作を手動またはマクロとして実装するのが伝統的です。(最近ではcomplex、コンパイラが C99 を話す場合は型を使用できますが、その面白さはどこにありますか? :-) )

于 2011-04-16T22:22:20.343 に答える
0

複素数の 2 乗と加算を繰り返す必要があります。

double a = real input component;
double b = imag input component;

double zReal = a;
double zImag = b;
for(int i = 0; i< LIMIT; i++){
   double temp = zReal;
   zReal = zReal * zReal - zImag * zImag;
   zImag = 2 * temp * zImag;
   if(zReal * zReal + zImag * zImag > 4){
      return 0;
   }
}
return 1;
于 2011-12-11T22:12:12.367 に答える