2010-11-07 67 views
-1
import copy 
class Polynomial(dict): 
    def __init__(self, coefficients): 
     self.coeff = coefficients 

    def dictionary(self,x): 
     sum=0.0 
     d=self.coeff 
     for k in d: 
      sum +=d[k]*x**k 
     return sum 
    def __add__(self, other): 
     new=copy.deepcopy(self) 
     for k,d in other.coeff: 
      if k in new: 
       new[k] +=value 
      else: 
        new[k]=value 
     return Polynomial(new) 

p = Polynomial({20:1,1:-1,100:4}) 
q = Polynomial({1:1,100:-3}) 

print q+q 
+0

需要更多詳細信息 – hhafez 2010-11-07 08:47:33

+3

預期結果和實際結果是什麼?是否有例外?請發佈更多細節。 – 2010-11-07 08:48:42

回答

4

dict進行迭代將生成密鑰,而不是項目。

for k, value in other.coeff.iteritems(): 
2
for k in d: 
     sum +=d[k]*x**k 
    return sum 

變化

for k, v in d.iteritems(): 
     sum +=v*x**k 
    return sum 

編輯:我看這個問題?

__add__(),值沒有定義,因此它被設置爲無,沒有結果會怎樣

+0

原始碼有效;這只是一個優化。 – 2010-11-07 08:56:42

相關問題