回答編集履歴

4

テキスト修正

2020/06/15 12:08

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -13,6 +13,8 @@
13
13
  をコードに落とし込むには、まずは `Tn-1` に相当する変数を用意するとよいです。以下では、`Tn` に相当する変数を `t`とし、`Tn-1`に相当する変数を `prevT`としました。
14
14
 
15
15
 
16
+
17
+ ### コード例1
16
18
 
17
19
  ```python
18
20
 
@@ -76,9 +78,11 @@
76
78
 
77
79
 
78
80
 
79
- そして、上記のコードをあらためて見直してリファクタリングし、`prevT` を削除できそうなので、削除ます。
81
+ そして、上記のコードをあらためて見直してリファクタリングし、`prevT` を削除できそうなので、削除すると以下になります。
80
82
 
81
83
 
84
+
85
+ ### コード例2
82
86
 
83
87
  ```python
84
88
 
@@ -109,3 +113,35 @@
109
113
 
110
114
 
111
115
  もちろん、ひとつ前の項を入れておく変数(ここでは `prevT`)を使わないコードを、初めから書けるようになればそれに越したことはありません。
116
+
117
+
118
+
119
+ さらに、数列`Tn`の初項`2` を `t` の初期値として代入しておけば、`t = 3 * t - 1 if n > 1 else 2` の `if n > 1 else 2` が不要になって、以下となります。
120
+
121
+
122
+
123
+ ### コード例3
124
+
125
+ ```python
126
+
127
+ def sumS(n):
128
+
129
+ acc = 0
130
+
131
+ t = 2
132
+
133
+ for n in range(1, 10+1):
134
+
135
+ acc += t
136
+
137
+ t = 3 * t - 1
138
+
139
+ return acc
140
+
141
+
142
+
143
+ print(sumS(10))
144
+
145
+ ```
146
+
147
+ - **動作確認用Repl.it:** [https://repl.it/@jun68ykt/Q2702253](https://repl.it/@jun68ykt/Q2702253)

3

テキスト修正

2020/06/15 12:08

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -105,3 +105,7 @@
105
105
  ```
106
106
 
107
107
  - **動作確認用Repl.it:** [https://repl.it/@jun68ykt/Q2702252](https://repl.it/@jun68ykt/Q2702252)
108
+
109
+
110
+
111
+ もちろん、ひとつ前の項を入れておく変数(ここでは `prevT`)を使わないコードを、初めから書けるようになればそれに越したことはありません。

2

テキスト修正

2020/06/15 10:46

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- をコードに落とし込むには、 `Tn-1` に相当する変数を用意するとよいです。以下では、`Tn` に相当する変数を `t`とし、`Tn-1`に相当する変数を `prevT`としました。
13
+ をコードに落とし込むには、まずは `Tn-1` に相当する変数を用意するとよいです。以下では、`Tn` に相当する変数を `t`とし、`Tn-1`に相当する変数を `prevT`としました。
14
14
 
15
15
 
16
16
 
@@ -73,3 +73,35 @@
73
73
 
74
74
 
75
75
  - **動作確認用Repl.it:** [https://repl.it/@jun68ykt/Q270225](https://repl.it/@jun68ykt/Q270225)
76
+
77
+
78
+
79
+ そして、上記のコードをあらためて見直してリファクタリングし、`prevT` を削除できそうなので、削除します。
80
+
81
+
82
+
83
+ ```python
84
+
85
+ def sumS(n):
86
+
87
+ acc = 0
88
+
89
+ t = None
90
+
91
+ for n in range(1,10+1):
92
+
93
+ t = 3 * t - 1 if n > 1 else 2
94
+
95
+ acc += t
96
+
97
+ return acc
98
+
99
+
100
+
101
+ print(sumS(10))
102
+
103
+
104
+
105
+ ```
106
+
107
+ - **動作確認用Repl.it:** [https://repl.it/@jun68ykt/Q2702252](https://repl.it/@jun68ykt/Q2702252)

1

テキスト修正

2020/06/15 10:42

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -38,7 +38,7 @@
38
38
 
39
39
 
40
40
 
41
- 上記によって、T(1) から T(10) までの、以下の10個の数
41
+ 上記によって、`T1` から `T10` までの、以下の10個の数
42
42
 
43
43
 
44
44