回答編集履歴

6

修正

2017/05/29 23:30

投稿

退会済みユーザー
test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- array = ([(1..n).to_a] * m)
13
+ array = ([(1..n).to_a] * m) # array = [[1, 2, 3], [1, 2]]等もいける。
14
14
 
15
15
 
16
16
 

5

修正

2017/05/29 23:30

投稿

退会済みユーザー
test CHANGED
@@ -45,3 +45,123 @@
45
45
  作れていると思います。
46
46
 
47
47
  (私は数学が得意ではないのでよく分かっていません。)
48
+
49
+
50
+
51
+ repeated_combinationを使う方法と私の方法では結果が若干異なります。
52
+
53
+ ```Ruby
54
+
55
+ # encoding: utf-8
56
+
57
+
58
+
59
+ m = 2
60
+
61
+ n = 2
62
+
63
+
64
+
65
+ array = ([(1..n).to_a] * m)
66
+
67
+
68
+
69
+ tmp = array.shift
70
+
71
+
72
+
73
+ array.each do |element|
74
+
75
+ tmp = tmp.product(element)
76
+
77
+ end
78
+
79
+
80
+
81
+ tmp.map!(&:flatten)
82
+
83
+
84
+
85
+ tmp.each do |e|
86
+
87
+ puts "#{e} => #{e.reduce(:*)}"
88
+
89
+ end
90
+
91
+ ```
92
+
93
+ ```
94
+
95
+ [1, 1] => 1
96
+
97
+ [1, 2] => 2
98
+
99
+ [2, 1] => 2
100
+
101
+ [2, 2] => 4
102
+
103
+ ```
104
+
105
+ ```Ruby
106
+
107
+ # encoding: utf-8
108
+
109
+
110
+
111
+ n = 2
112
+
113
+ m = 2
114
+
115
+
116
+
117
+ (1..n).to_a.repeated_combination(m){|comb|
118
+
119
+ p comb
120
+
121
+ }
122
+
123
+
124
+
125
+ ```
126
+
127
+ ```
128
+
129
+ [1, 1]
130
+
131
+ [1, 2]
132
+
133
+ [2, 2]
134
+
135
+ ```
136
+
137
+ ```Ruby
138
+
139
+ # encoding: utf-8
140
+
141
+
142
+
143
+ (1..2).each do |i|
144
+
145
+ (1..2).each do |j|
146
+
147
+ p [i, j]
148
+
149
+ end
150
+
151
+ end
152
+
153
+
154
+
155
+ ```
156
+
157
+ ```
158
+
159
+ [1, 1]
160
+
161
+ [1, 2]
162
+
163
+ [2, 1]
164
+
165
+ [2, 2]
166
+
167
+ ```

4

修正

2017/05/29 16:53

投稿

退会済みユーザー
test CHANGED
@@ -4,9 +4,9 @@
4
4
 
5
5
 
6
6
 
7
+ m = 4
8
+
7
9
  n = 3
8
-
9
- m = 4
10
10
 
11
11
 
12
12
 
@@ -32,7 +32,7 @@
32
32
 
33
33
  tmp.each do |e|
34
34
 
35
- puts "#{e.to_s} => #{e.reduce(:*)}"
35
+ puts "#{e} => #{e.reduce(:*)}"
36
36
 
37
37
  end
38
38
 

3

修正

2017/05/29 14:42

投稿

退会済みユーザー
test CHANGED
@@ -4,7 +4,13 @@
4
4
 
5
5
 
6
6
 
7
+ n = 3
8
+
9
+ m = 4
10
+
11
+
12
+
7
- array = ([(1..5).to_a] * 3)
13
+ array = ([(1..n).to_a] * m)
8
14
 
9
15
 
10
16
 
@@ -26,16 +32,16 @@
26
32
 
27
33
  tmp.each do |e|
28
34
 
29
- puts e.reduce(:*) + 1
35
+ puts "#{e.to_s} => #{e.reduce(:*)}"
30
36
 
31
37
  end
32
-
33
-
34
38
 
35
39
  ```
36
40
 
37
41
  再帰ではないですが、考えてみました。
38
42
 
43
+ 恐らく「i * j * ... * m」この部分のすべての組み合わせを
44
+
39
- 恐らくすべてのパターンを作れていると思います。
45
+ 作れていると思います。
40
46
 
41
47
  (私は数学が得意ではないのでよく分かっていません。)

2

修正

2017/05/29 14:39

投稿

退会済みユーザー
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- array = ([(1..8).to_a] * 3)
7
+ array = ([(1..5).to_a] * 3)
8
8
 
9
9
 
10
10
 

1

修正

2017/05/29 14:18

投稿

退会済みユーザー
test CHANGED
@@ -1,10 +1,10 @@
1
1
  ```Ruby
2
2
 
3
- #encoding: utf-8
3
+ # encoding: utf-8
4
4
 
5
5
 
6
6
 
7
- array = ([(1..5).to_a] * 3)
7
+ array = ([(1..8).to_a] * 3)
8
8
 
9
9
 
10
10
 
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- tmp.map! { |e| e.flatten }
23
+ tmp.map!(&:flatten)
24
24
 
25
25
 
26
26