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

回答編集履歴

2

テキスト修正

2020/06/09 11:10

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -53,6 +53,8 @@
53
53
  上記のような検討をせずに、たとえばリスト `[1, 2, 3, 4]` から `12 + 34` を求めることにして、すべての組み合わせから、2桁の2数の和を求めて最大値を出すのは、以下でできます。
54
54
 
55
55
  ```python
56
+ from itertools import permutations
57
+
56
58
  max([(e1 + e3)*10 + (e2 + e4) for e1, e2, e3, e4 in permutations([a, b, c, d])])
57
59
  ```
58
60
  ただし、順列(permutations)を使っていますし、調べる中には、10の位の数が1の位の数よりも小さい組み合わせも含むので、だいぶ無駄が多いです。(こちらのコードも上記のRepl.itに含めておきました)

1

テキスト修正

2020/06/09 11:10

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -46,4 +46,13 @@
46
46
 
47
47
 
48
48
  乱数から a, b, c, d を作り、2数の組み合わせのリストを x に作り、そこから題意の2桁の数の和のリスト(上記の説明のα、β、γに相当)を作って、最大値を得るコードです。
49
- 以上、参考になれば幸いです。
49
+ 以上、参考になれば幸いです。
50
+
51
+ ### 追記
52
+
53
+ 上記のような検討をせずに、たとえばリスト `[1, 2, 3, 4]` から `12 + 34` を求めることにして、すべての組み合わせから、2桁の2数の和を求めて最大値を出すのは、以下でできます。
54
+
55
+ ```python
56
+ max([(e1 + e3)*10 + (e2 + e4) for e1, e2, e3, e4 in permutations([a, b, c, d])])
57
+ ```
58
+ ただし、順列(permutations)を使っていますし、調べる中には、10の位の数が1の位の数よりも小さい組み合わせも含むので、だいぶ無駄が多いです。(こちらのコードも上記のRepl.itに含めておきました)