【Ruby】【アルゴリズム】重複組み合わせ。師匠Ver
重複組み合わせはFor文でシンプルに書けてすごい!
と書いていたら師匠からメールが来た。
■以前のコード
i = 0 while i < 10 j = i while j < 10 k = j while k < 10 m = k while m < 10 result << "#{i},#{j},#{k},#{m}" m += 1 end k += 1 end j += 1 end i += 1 end p result.length
■師匠のメール
(1..9).each do |i| (i..9).each do |j| (j..9).each do |k| (k..9).each do |m| result << "#{i},#{j},#{k},#{m}" end end end end
終わってくれることが保障されてるし、 制御変数を意識せんでいいしね。
なるほど!
確かにこのインクリメント変数、不細工だな~って思ってたんだよね。
それによく、インクリメントする値を「0」にtypoしてしまうし↓
m = 0 while m < 10 p "hoge" m += 0 ←コレ end
初期値を0と書くから、つられてインクリメントも「0」って書いちゃうんだよね。
ぷっ(自分でウケてる)
一つ賢くなった!