質問編集履歴
4
修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
関数の呼び出し
|
1
|
+
関数の呼び出しについて
|
body
CHANGED
File without changes
|
3
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -38,12 +38,12 @@
|
|
38
38
|
print(str(cnt[0]) + "回目の呼び出し")
|
39
39
|
if R-L > 1:
|
40
40
|
M = int((L+R)/2)
|
41
|
-
vL, lcpstar =
|
41
|
+
vL, lcpstar = spt(L, M, LCP, lcpstar)
|
42
|
-
vR, lcpstar =
|
42
|
+
vR, lcpstar = spt(M, R, LCP, lcpstar)
|
43
43
|
v = min(vL, vR)
|
44
44
|
elif R-L == 1:
|
45
45
|
v = LCP[L]
|
46
|
-
|
46
|
+
|
47
47
|
lcpstar[tuple([L,R])] = v
|
48
48
|
lcpstar[tuple([R,L])] = v
|
49
49
|
return v, lcpstar
|
2
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -26,4 +26,53 @@
|
|
26
26
|
print(g)
|
27
27
|
|
28
28
|
```
|
29
|
-
のようになると思うのですが,これをどこに置くのが良いのかわかりません.よろしくお願いいたします.
|
29
|
+
のようになると思うのですが,これをどこに置くのが良いのかわかりません.よろしくお願いいたします.
|
30
|
+
|
31
|
+
|
32
|
+
追記
|
33
|
+
|
34
|
+
```python
|
35
|
+
|
36
|
+
def spt(L,R,LCP,lcpstar,cnt=[0]):
|
37
|
+
cnt[0] += 1
|
38
|
+
print(str(cnt[0]) + "回目の呼び出し")
|
39
|
+
if R-L > 1:
|
40
|
+
M = int((L+R)/2)
|
41
|
+
vL, lcpstar = splitInt(L, M, LCP, lcpstar)
|
42
|
+
vR, lcpstar = splitInt(M, R, LCP, lcpstar)
|
43
|
+
v = min(vL, vR)
|
44
|
+
elif R-L == 1:
|
45
|
+
v = LCP[L]
|
46
|
+
# make lcpstr symmetric.
|
47
|
+
lcpstar[tuple([L,R])] = v
|
48
|
+
lcpstar[tuple([R,L])] = v
|
49
|
+
return v, lcpstar
|
50
|
+
```
|
51
|
+
上から2行目と3行目を追加したらこのように数えられているような気がするのですが,更新がされず
|
52
|
+
1回目に実行すると
|
53
|
+
|
54
|
+
1回目の呼び出し
|
55
|
+
2回目の呼び出し
|
56
|
+
3回目の呼び出し
|
57
|
+
4回目の呼び出し
|
58
|
+
5回目の呼び出し
|
59
|
+
6回目の呼び出し
|
60
|
+
7回目の呼び出し
|
61
|
+
8回目の呼び出し
|
62
|
+
9回目の呼び出し
|
63
|
+
10回目の呼び出し
|
64
|
+
11回目の呼び出し
|
65
|
+
|
66
|
+
2回目に実行すると
|
67
|
+
12回目の呼び出し
|
68
|
+
13回目の呼び出し
|
69
|
+
14回目の呼び出し
|
70
|
+
15回目の呼び出し
|
71
|
+
16回目の呼び出し
|
72
|
+
17回目の呼び出し
|
73
|
+
18回目の呼び出し
|
74
|
+
19回目の呼び出し
|
75
|
+
20回目の呼び出し
|
76
|
+
21回目の呼び出し
|
77
|
+
22回目の呼び出し
|
78
|
+
カウントが更新されず,続きからになります.どのように直したらいいですが?
|
1
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
LCP = lcpA(T, SA)
|
6
6
|
LCPstar = StarA(LCP)
|
7
7
|
```
|
8
|
-
このようにして与えたTに対して求めたLCPstarを最終的に表示します(表示部分は載せていません).
|
8
|
+
このようにして与えたTに対して求めたLCPstarを最終的に表示します(表示部分までは載せていません).
|
9
9
|
この時関数StarAの中のsptという関数が上の与えたTの場合何回呼び出されるかを数えたいです.
|
10
10
|
関数はこのように別で定義しています.
|
11
11
|
```python
|