回答編集履歴
3
修正
answer
CHANGED
@@ -1,4 +1,19 @@
|
|
1
1
|
limit_min_num を変化させないと、再帰関数は無限に呼び出されることにならないでしょうか。
|
2
2
|
再帰関数を呼び出していったとき、`len(tri_node.tri_list) > limit_min_num` でない場合がいつか現れないと、再帰関数が無限ループします。
|
3
3
|
|
4
|
-
※ 実装の正しさについては検証していません。カーネルが落ちるという問題についてです。
|
4
|
+
※ 実装の正しさについては検証していません。カーネルが落ちるという問題についてです。
|
5
|
+
|
6
|
+
## 追記
|
7
|
+
|
8
|
+
例えば、階乗を計算する再帰関数を作るなら以下のようになります。
|
9
|
+
今の質問者さんのコードには、`n == 0` の場合は再帰をやめるという処理がない状態です。
|
10
|
+
|
11
|
+
```python
|
12
|
+
def f(n):
|
13
|
+
if n == 0: # 再帰関数を終了する条件
|
14
|
+
return 1
|
15
|
+
|
16
|
+
return n * f(n - 1)
|
17
|
+
|
18
|
+
print(f(5))
|
19
|
+
```
|
2
修正
answer
CHANGED
@@ -1,2 +1,4 @@
|
|
1
1
|
limit_min_num を変化させないと、再帰関数は無限に呼び出されることにならないでしょうか。
|
2
|
+
再帰関数を呼び出していったとき、`len(tri_node.tri_list) > limit_min_num` でない場合がいつか現れないと、再帰関数が無限ループします。
|
3
|
+
|
2
|
-
※
|
4
|
+
※ 実装の正しさについては検証していません。カーネルが落ちるという問題についてです。
|
1
修正
answer
CHANGED
@@ -1,9 +1,2 @@
|
|
1
1
|
limit_min_num を変化させないと、再帰関数は無限に呼び出されることにならないでしょうか。
|
2
|
-
※ 実装の正しさについては検証していません。カーネルが落ちるという問題についてです。
|
2
|
+
※ 実装の正しさについては検証していません。カーネルが落ちるという問題についてです。
|
3
|
-
|
4
|
-
```diff
|
5
|
-
- obj_subdiv(tri_node.child_list1, limit_min_num)
|
6
|
-
- obj_subdiv(tri_node.child_list2, limit_min_num)
|
7
|
-
+ obj_subdiv(tri_node.child_list1, limit_min_num + 1)
|
8
|
-
+ obj_subdiv(tri_node.child_list2, limit_min_num + 1)
|
9
|
-
```
|