私は奇妙な現象に出くわしました:
「カタロニア語の数字」を計算するコードを書きましたが、これは動作しますが、今はメモ化辞書 (ディカタランと呼ばれます) を使用して実行時間を改善しようとしています:
dicatalan = {}
def catalan(n):
if n == 0:
return 1
else:
res = 0
if n not in dicatalan:
for i in range(n):
res += catalan(i) * catalan(n - i - 1)
dicatalan[n] = res
print ("dicatalan is", dicatalan)
return dicatalan[n]
これがキャッチです-Eclipse-Pydev-n=1
コードは途中で実行され、予想どおりに出力されます: "dicatalan is 1:1" 不思議なことに停止する前に、しかし IDLE では同じコードが "dicatalan is 0:1" を出力します。
いずれにせよ、後で dicatalan を印刷しようとすると、{} を受け取りました。
それはどうしてですか?コードで何が起こりますか?デバッガーを実行しても無駄であることが判明しました。
口述を機能させるためのアイデアはありますか?