回答編集履歴
1
追記
test
CHANGED
@@ -3,3 +3,23 @@
|
|
3
3
|
|
4
4
|
|
5
5
|
fibo の引数が self.num-1 でいいかどうか考えてみてください。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
### 追記
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
フィボナッチ数列は状態が必要なく、関数の引数を再帰的に適用するだけで求められるので、**わざわざクラスを作る必要はありません**。
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
しかし、複数回計算すると、何度も同じ計算を繰り返すために、**無視できない無駄が発生**します。これに対応するため、一度行った計算結果を保存しておき、次に同じ引数で呼ばれた時には前回の計算結果を返すという方法がよくとられます。これを**メモ化**(Memoization)と呼びます。(Memorization ではなく Memoization であることに注意)
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
[メモ化 - Wikipedia](https://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%A2%E5%8C%96)
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
**メモ化を実装するのであれば**、関数とデータを別々に宣言するのではなく、**クラスとしてカプセル化するのが妥当です**。
|