因此给定任何点(a + ib),如果函数在mandelbrot集中,则函数将返回1,如果不是n次迭代,则返回0。
我在尝试编写此函数时遇到了困难,特别是对于复数。任何人都可以帮助我或给我一些建议吗?
到目前为止,我只想到一种方法来确定一个实数(任何x,y = 0)是否在mandelbrot集中。
编辑:对不起忘了说我用C编码,我主要是在寻找一些伪问题的想法。答案 0 :(得分:1)
该集合上的维基百科页面有一些伪代码可以完成基本工作,并提示您可以采用这样一个项目的许多方向。理解复杂的数学是关键;传统的做法是将复合体的实部和虚部保持为一对双精度,并实现手动或宏所需的任何操作。 (现在你可以使用complex
类型,如果你的编译器说C99,但那里的乐趣......?:-))
答案 1 :(得分:0)
您需要重复平方并添加一个复数:
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;