2

我需要创建一个函数来测试复数 c 是否在定义为 z n+1 = z n 2 + c 的 Mandelbrot 集中。如果这令人困惑,则 n 的值在下标中。该函数接受变量 c(0 + 0j 形式的某个复数)和 n(迭代次数)。要查看 c 是否在集合中,我需要测试 z = z**2 + c > 2。如果 > 2 我需要返回 false。现在我知道 c = 0 + 0j 和 n = 25 我应该得到 True。但我只能用非常小的 n 值来实现。我需要做什么不同的事情。

def inMSet(c,n):
    for x in range(0, n):
        z = n**2 + c
        if abs(z) > 2:
            return False
        else:
            return True 
4

1 回答 1

2

定义有一个迭代公式,从 开始z=0

def inMSet(c,n):
    z = 0
    for x in range(0, n):
        z = z**2 + c
        if abs(z) > 2:
            return False
    return True 

>>> inMSet(0+0j,25)
True
于 2012-10-27T09:37:18.843 回答