# Résolution du problème du chat et # des souris def chat(n) for k in 1..n ordre=josephe(n,k) if ordre.last==1 puts k end end end # Résolution du problème de Josèphe def josephe(n,k) cercle=Array.new(n) {|i| i+1} ordre=[ ] pos=0 while cercle.size>0 pos=(pos+k-1)%cercle.size ordre << cercle.delete_at(pos) end return ordre end