過去ログ

「数学」小旅行
例によって、プログラムもしてみました。Rubyです。再帰です。
Xの次にはXかZを、Yの次にはYかZを、Zの次にはXかYかZを
付けていって、5個並んだら終わりでカウントします。

$n=0
def m(y,r)
if r<5 then
case y when 'X' then for i in ['X','Z']; m(i,r+1) end
when 'Y' then for i in['Y','Z']; m(i,r+1) end
else for i in ['X','Y','Z']; m(i,r+1) end
end
else
$n+=1
end
end

m('z',0)
p $n

ちなみに10個並べると、8119通りになるようです。

   6月26日(土) 14:31:20     50620

過去問題一覧へ戻る