質問: 0: return 0 else: return 1/4.*get_total_z(n-1)+3 for i in range(0,50): print(str(get_total_x(i))+","+str(get_total_y(i))+","+str(get_total_z(i)))
回答: > > ... 一つ前の計算結果を用いて答えを出力したい ... > > > メソッドに prev として、一つ前の計算結果を指定できるように書き換えてみました。 さらに get_total_x, get_total_y, get_total_z を別関数でなく、 一つの関数 get_total にまとめてみました。 xyz.py ``` def get_total(n, k, prev): if n == 0: return 0 if prev == None: prev = get_total(n - 1, k, None) return 1.0 / (k + 1) * prev + k p1 = None p2 = None p3 = None for i in range(0, 10): p1 = get_total(i, 1, p1) p2 = get_total(i, 2, p2) p3 = get_total(i, 3, p3) print(str(i), ": ", p1, ",", p2, ",", p3) ``` 実行例 前半は質問文にあるコードを 0..10 までループにして実行してます。 後半は上のコードを実行してます。 出力書式は異なってなすが、数値は同じになっています。 !イメージ説明