回答編集履歴

3

h_a さんの指摘で修正

2017/05/29 17:03

投稿

oskbt
oskbt

スコア1895

test CHANGED
@@ -1,6 +1,16 @@
1
- repeated_combinationを使えばシンプルに書けますね。
1
+ repeated_combinationを使えばシンプルに書けますね。 <=間違いでした。
2
2
 
3
+
4
+
3
-
5
+ (追記)
6
+
7
+ h_aさんの指摘で間違いに気づきました。失礼しました。
8
+
9
+ 正解はrepeated_permutation でした。
10
+
11
+ (追記おしまい)
12
+
13
+
4
14
 
5
15
  ```ruby
6
16
 
@@ -16,7 +26,7 @@
16
26
 
17
27
 
18
28
 
19
- (1..n).to_a.repeated_combination(m){|comb|
29
+ (1..n).to_a.repeated_permutation(m){|comb|
20
30
 
21
31
 
22
32
 

2

nilのとき初期化をしないと駄目でした。

2017/05/29 17:03

投稿

oskbt
oskbt

スコア1895

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- ary = {}
9
+ ary = {} # ary=[] でも好きな方で
10
10
 
11
11
 
12
12
 
@@ -21,6 +21,8 @@
21
21
 
22
22
 
23
23
  index = comb.reduce(:*)
24
+
25
+ ary[index] = 0 if ary[index].nil?
24
26
 
25
27
  ary[index] += 1
26
28
 

1

分かりやすいようにコメント追加

2017/05/29 16:56

投稿

oskbt
oskbt

スコア1895

test CHANGED
@@ -10,9 +10,9 @@
10
10
 
11
11
 
12
12
 
13
- n = 10
13
+ n = 10 # (1..10)
14
14
 
15
- m = 10
15
+ m = 10 # [a * b * c * d * e * f * g * h * i * j]
16
16
 
17
17
 
18
18