Ruby
1# encoding: utf-8
2
3arr = (0..100).to_a
4
5name_list = arr.sample(11).map(&:to_s)
6
7name_list.each_with_index do |name, i|
8 list = []
9 name_list.each_with_index do |e, n|
10 list << e unless n == i
11 end
12 puts "#{name}さんのリストです。#{list.map { |e| e + 'さん' }.join(', ')}"
13end
Ruby
179さんのリストです。90さん, 92さん, 50さん, 67さん, 22さん, 34さん, 42さん, 52さん, 30さん, 66さん
290さんのリストです。79さん, 92さん, 50さん, 67さん, 22さん, 34さん, 42さん, 52さん, 30さん, 66さん
392さんのリストです。79さん, 90さん, 50さん, 67さん, 22さん, 34さん, 42さん, 52さん, 30さん, 66さん
450さんのリストです。79さん, 90さん, 92さん, 67さん, 22さん, 34さん, 42さん, 52さん, 30さん, 66さん
567さんのリストです。79さん, 90さん, 92さん, 50さん, 22さん, 34さん, 42さん, 52さん, 30さん, 66さん
622さんのリストです。79さん, 90さん, 92さん, 50さん, 67さん, 34さん, 42さん, 52さん, 30さん, 66さん
734さんのリストです。79さん, 90さん, 92さん, 50さん, 67さん, 22さん, 42さん, 52さん, 30さん, 66さん
842さんのリストです。79さん, 90さん, 92さん, 50さん, 67さん, 22さん, 34さん, 52さん, 30さん, 66さん
952さんのリストです。79さん, 90さん, 92さん, 50さん, 67さん, 22さん, 34さん, 42さん, 30さん, 66さん
1030さんのリストです。79さん, 90さん, 92さん, 50さん, 67さん, 22さん, 34さん, 42さん, 52さん, 66さん
1166さんのリストです。79さん, 90さん, 92さん, 50さん, 67さん, 22さん, 34さん, 42さん, 52さん, 30さん
ランダムに10人とって配列を作って、その配列を回しながら各々に
その配列を表示するというのはどうでしょうか。
10人表示するために11人を選択しています。
元の配列を減らしながら表示させるバージョン。
Ruby
1# encoding: utf-8
2
3class Kako
4 def show(arr)
5 while arr.size > 0
6 arr.shuffle!
7 name_list = arr.shift(11)
8 work(name_list)
9 end
10 end
11
12 private
13
14 def work(array)
15 array.each_with_index do |name, i|
16 list = []
17 array.each_with_index do |a, b|
18 list << a unless b == i
19 end
20 puts "#{name}さんのリストです。#{list.map { |e| e.to_s + 'さん' }.join(', ')}"
21 end
22 end
23end
24
25k = Kako.new
26k.show((0..1234).to_a)
27