复数和循环

时间:2012-10-25 16:26:39

标签: python for-loop complex-numbers

我需要创建一个函数,测试一个复数,c是否在Mandelbrot集合中,定义为z n + 1 = z n 2 + c。如果令人困惑,则n的值在下标中。该函数接受变量c(形式0 + 0j的某个复数)和n(迭代次数)。为了查看c是否在集合中,我需要测试z = z ** 2 + c> 2.如果> 2我需要归还假。现在我知道,当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 

1 个答案:

答案 0 :(得分:2)

定义有一个iterative formula,从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