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

回答編集履歴

4

テキスト修正

2020/06/15 12:08

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -6,6 +6,7 @@
6
6
 
7
7
  をコードに落とし込むには、まずは `Tn-1` に相当する変数を用意するとよいです。以下では、`Tn` に相当する変数を `t`とし、`Tn-1`に相当する変数を `prevT`としました。
8
8
 
9
+ ### コード例1
9
10
  ```python
10
11
  def sumS(n):
11
12
  acc = 0
@@ -37,8 +38,9 @@
37
38
 
38
39
  - **動作確認用Repl.it:** [https://repl.it/@jun68ykt/Q270225](https://repl.it/@jun68ykt/Q270225)
39
40
 
40
- そして、上記のコードをあらためて見直してリファクタリングし、`prevT` を削除できそうなので、削除ます。
41
+ そして、上記のコードをあらためて見直してリファクタリングし、`prevT` を削除できそうなので、削除すると以下になります。
41
42
 
43
+ ### コード例2
42
44
  ```python
43
45
  def sumS(n):
44
46
  acc = 0
@@ -53,4 +55,20 @@
53
55
  ```
54
56
  - **動作確認用Repl.it:** [https://repl.it/@jun68ykt/Q2702252](https://repl.it/@jun68ykt/Q2702252)
55
57
 
56
- もちろん、ひとつ前の項を入れておく変数(ここでは `prevT`)を使わないコードを、初めから書けるようになればそれに越したことはありません。
58
+ もちろん、ひとつ前の項を入れておく変数(ここでは `prevT`)を使わないコードを、初めから書けるようになればそれに越したことはありません。
59
+
60
+ さらに、数列`Tn`の初項`2` を `t` の初期値として代入しておけば、`t = 3 * t - 1 if n > 1 else 2` の `if n > 1 else 2` が不要になって、以下となります。
61
+
62
+ ### コード例3
63
+ ```python
64
+ def sumS(n):
65
+ acc = 0
66
+ t = 2
67
+ for n in range(1, 10+1):
68
+ acc += t
69
+ t = 3 * t - 1
70
+ return acc
71
+
72
+ print(sumS(10))
73
+ ```
74
+ - **動作確認用Repl.it:** [https://repl.it/@jun68ykt/Q2702253](https://repl.it/@jun68ykt/Q2702253)

3

テキスト修正

2020/06/15 12:08

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -51,4 +51,6 @@
51
51
  print(sumS(10))
52
52
 
53
53
  ```
54
- - **動作確認用Repl.it:** [https://repl.it/@jun68ykt/Q2702252](https://repl.it/@jun68ykt/Q2702252)
54
+ - **動作確認用Repl.it:** [https://repl.it/@jun68ykt/Q2702252](https://repl.it/@jun68ykt/Q2702252)
55
+
56
+ もちろん、ひとつ前の項を入れておく変数(ここでは `prevT`)を使わないコードを、初めから書けるようになればそれに越したことはありません。

2

テキスト修正

2020/06/15 10:46

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  > Tn=3Tn-1-1
6
6
 
7
- をコードに落とし込むには、 `Tn-1` に相当する変数を用意するとよいです。以下では、`Tn` に相当する変数を `t`とし、`Tn-1`に相当する変数を `prevT`としました。
7
+ をコードに落とし込むには、まずは `Tn-1` に相当する変数を用意するとよいです。以下では、`Tn` に相当する変数を `t`とし、`Tn-1`に相当する変数を `prevT`としました。
8
8
 
9
9
  ```python
10
10
  def sumS(n):
@@ -35,4 +35,20 @@
35
35
 
36
36
  の合計の `44291` が表示されます。
37
37
 
38
- - **動作確認用Repl.it:** [https://repl.it/@jun68ykt/Q270225](https://repl.it/@jun68ykt/Q270225)
38
+ - **動作確認用Repl.it:** [https://repl.it/@jun68ykt/Q270225](https://repl.it/@jun68ykt/Q270225)
39
+
40
+ そして、上記のコードをあらためて見直してリファクタリングし、`prevT` を削除できそうなので、削除します。
41
+
42
+ ```python
43
+ def sumS(n):
44
+ acc = 0
45
+ t = None
46
+ for n in range(1,10+1):
47
+ t = 3 * t - 1 if n > 1 else 2
48
+ acc += t
49
+ return acc
50
+
51
+ print(sumS(10))
52
+
53
+ ```
54
+ - **動作確認用Repl.it:** [https://repl.it/@jun68ykt/Q2702252](https://repl.it/@jun68ykt/Q2702252)

1

テキスト修正

2020/06/15 10:42

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -18,7 +18,7 @@
18
18
  print(sumS(10))
19
19
  ```
20
20
 
21
- 上記によって、T(1) から T(10) までの、以下の10個の数
21
+ 上記によって、`T1` から `T10` までの、以下の10個の数
22
22
 
23
23
  ```
24
24
  2