teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

修正

2021/06/19 04:37

投稿

kaeruuuun
kaeruuuun

スコア19

title CHANGED
@@ -1,1 +1,1 @@
1
- 関数の呼び出し回数を数える
1
+ 関数の呼び出しについて
body CHANGED
File without changes

3

修正

2021/06/19 04:37

投稿

kaeruuuun
kaeruuuun

スコア19

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 = splitInt(L, M, LCP, lcpstar)
41
+ vL, lcpstar = spt(L, M, LCP, lcpstar)
42
- vR, lcpstar = splitInt(M, R, LCP, 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
- # make lcpstr symmetric.
46
+
47
47
  lcpstar[tuple([L,R])] = v
48
48
  lcpstar[tuple([R,L])] = v
49
49
  return v, lcpstar

2

追加

2021/06/15 05:32

投稿

kaeruuuun
kaeruuuun

スコア19

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

修正

2021/06/15 05:32

投稿

kaeruuuun
kaeruuuun

スコア19

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