応募

# i_want_imac.rb

APPLE = "アップル"
IMAC = "iMac G5"
TIMES = ARGV.size.zero? ? 1 : ARGV[0].to_i

def roulette src
  ret = ""
  chars = src.split //
  chars.size.times do
    ret += chars[rand(chars.size)]
  end
  ret
end

TIMES.times do
  puts "#{roulette(APPLE)}の#{roulette(IMAC)}欲しい!"
end

実行結果:

% ruby -Ke i_want_imac.rb 20

ッルププのiicGi a欲しい!
アプアッのGi ic5G欲しい!
ルプアッのGMaaaMc欲しい!
プルプルのGacGcMi欲しい!
ッッッッのai5a5Gi欲しい!
ッルアプのMM5 55a欲しい!
ッアププの  cMc  欲しい!
アプルプの  Ga MM欲しい!
ルププルの ai GMa欲しい!
アプアッのGaaccM5欲しい!
ププップのiMacaiG欲しい!
ルアプルのMic Ma 欲しい!
ッルププのiMM G a欲しい!
プルルアのG GGa5G欲しい!
アアアッのci5Ma i欲しい!
アプアアのciaGMc 欲しい!
アルアッの ccc5Gc欲しい!
プッルルのciM55Gc欲しい!
ルアアルのMaiicMa欲しい!
ププルプのcGia  i欲しい!

ダメか。つーか、こわ。きもちわる。

まあ「プルプル」が得られたのでよしとしよう。

ちなみにroulette関数を次のに差し替えると設定が甘くなります。

def roulette2 src
  ret = ""
  chars = src.split //
  chars.size.times do
    ret += chars.delete_at(rand(chars.size))
  end
  ret
end

これで5万回に1回くらいはヒットするようになります。

つーか、こんなのどうせ当たんないし! 欲しくなったら働いて買います!