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

回答編集履歴

2

修正

2017/07/07 14:23

投稿

退会済みユーザー
answer CHANGED
@@ -29,4 +29,35 @@
29
29
  ランダムに10人とって配列を作って、その配列を回しながら各々に
30
30
  その配列を表示するというのはどうでしょうか。
31
31
 
32
- 10人表示するために11人を選択しています。
32
+ 10人表示するために11人を選択しています。
33
+
34
+ 元の配列を減らしながら表示させるバージョン。
35
+ ```Ruby
36
+ # encoding: utf-8
37
+
38
+ class Kako
39
+ def show(arr)
40
+ while arr.size > 0
41
+ arr.shuffle!
42
+ name_list = arr.shift(11)
43
+ work(name_list)
44
+ end
45
+ end
46
+
47
+ private
48
+
49
+ def work(array)
50
+ array.each_with_index do |name, i|
51
+ list = []
52
+ array.each_with_index do |a, b|
53
+ list << a unless b == i
54
+ end
55
+ puts "#{name}さんのリストです。#{list.map { |e| e.to_s + 'さん' }.join(', ')}"
56
+ end
57
+ end
58
+ end
59
+
60
+ k = Kako.new
61
+ k.show((0..1234).to_a)
62
+
63
+ ```

1

修正

2017/07/07 14:23

投稿

退会済みユーザー
answer CHANGED
@@ -8,7 +8,7 @@
8
8
  name_list.each_with_index do |name, i|
9
9
  list = []
10
10
  name_list.each_with_index do |e, n|
11
- list << e unless n == i
11
+ list << e unless n == i
12
12
  end
13
13
  puts "#{name}さんのリストです。#{list.map { |e| e + 'さん' }.join(', ')}"
14
14
  end