Mandelbrot集
* * * *
拉格朗日计划
* * * *
Mandelbrot集

考虑动力系统$z_1=0, z_{n+1}=z_n^2+c$。 Mandelbrot集是由能使得上述序列不逃逸到无穷的复数c所组成的集合。

考虑复平面上满足$-2\le Re(c)\le 0.5, -1\le Im(c)\le 1$的区域,将其分为$80\times 40$的网格,此网格中有$81\times 41$个格点。

对每个格点所表示的复数,在Mandelbrot集中的用█ (U+2588)表示,不在Mandelbrot集中的用▒ (U+2592)表示,按此方式输出上述网格。

提示:对本题中所涉及的复数,1063次迭代就足以决定其是否在Mandelbrot集中。

本题难度:



解答

只需知晓$|z|>2$时逃逸即可。

最终代码有7行。

代码长度:148字节 vs. 全站第一:106字节。

for b in range(41):
  s=""
  for a in range(81):
    z=c=complex(-2+a*2.5/80,1-b*2/40)
    for i in range(1063):z=z*z+c
    s+="▒█"[abs(z)<=2]
  print(s)