回答編集履歴

2

テキスト修正

2020/06/09 11:10

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -108,6 +108,10 @@
108
108
 
109
109
  ```python
110
110
 
111
+ from itertools import permutations
112
+
113
+
114
+
111
115
  max([(e1 + e3)*10 + (e2 + e4) for e1, e2, e3, e4 in permutations([a, b, c, d])])
112
116
 
113
117
  ```

1

テキスト修正

2020/06/09 11:10

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -95,3 +95,21 @@
95
95
  乱数から a, b, c, d を作り、2数の組み合わせのリストを x に作り、そこから題意の2桁の数の和のリスト(上記の説明のα、β、γに相当)を作って、最大値を得るコードです。
96
96
 
97
97
  以上、参考になれば幸いです。
98
+
99
+
100
+
101
+ ### 追記
102
+
103
+
104
+
105
+ 上記のような検討をせずに、たとえばリスト `[1, 2, 3, 4]` から `12 + 34` を求めることにして、すべての組み合わせから、2桁の2数の和を求めて最大値を出すのは、以下でできます。
106
+
107
+
108
+
109
+ ```python
110
+
111
+ max([(e1 + e3)*10 + (e2 + e4) for e1, e2, e3, e4 in permutations([a, b, c, d])])
112
+
113
+ ```
114
+
115
+ ただし、順列(permutations)を使っていますし、調べる中には、10の位の数が1の位の数よりも小さい組み合わせも含むので、だいぶ無駄が多いです。(こちらのコードも上記のRepl.itに含めておきました)