私のOSはSage5.4をサポートしていないので、今のところ5.0のままです。この関数を定義すると、Pythonで構文エラーは登録されません。また、Sage 5.4ではエラーが発生しないと思います(可能であれば確認していただければ幸いです)。5.0で失敗する理由を知りたいです。
def num_matchings(G):
if min(G.degree_sequence())== 0 or G.num_edges()==0:
return 0
elif G.num_edges()==1:
if G.edges()[0][2] ==None:
return 1
else:
return G.edges()[0][2]
else:
H = copy(G)
K = copy(G)
e = G.edges()[0]
if e[2] ==None:
w=1
else:
w = e[2]
H.delete_edge(e)
K.delete_vertices([e[0],e[1]])
return num_matchings(H) + w*num_matchings(K)
定義しようとすると最初に発生するエラーは
File "<ipython console>", line 4
==Integer(1):
^
SyntaxError: invalid syntax
その後、彼らは積み重なっていきます。私の目には、構文は問題ないように見えます。
MacOS10.5とGCC4.0.1を使用しています。
どんな助けでも大歓迎です。