2012-10-25 64 views
2

我需要作出一個測試,如果一個複雜的數,c是在其被定義爲:z n + 1個 = Z Ñ + C Mandelbrot集的函數。如果這是令人困惑的,則n的值在下標中。該函數接受變量c(0 + 0j形式的複數)和n(迭代次數)。要看看c是否在集合中,我需要測試z = z ** 2 + c> 2.如果> 2,我需要返回false。現在我知道用c = 0 + 0j和n = 25我應該變成真。但是我只能通過非常小的n值才能得到結果。我需要做什麼不同的事情。複數和for循環

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

什麼編程語言?請負責任地加標籤。 –

+0

也許我在這裏錯過了一些東西,但for循環似乎沒有做任何事情。你應該有'z = x ** 2 + c'嗎? –

+0

那麼在我的代碼中,我需要用n來做什麼? – Josh

回答

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 
+0

你是先生,是男人中的神。一位仁慈的神賜給所有人最好的財富。讓你的意願完成,你的名字得到讚揚。 – Josh