過去ログ

「数学」小旅行
Rubyプログラムです。
x=[0,1].repeated_permutation(16).to_a
x.each{|t|for i in (0..3); t[4*i+i]=1 end}
x.each{|t|for i in (0..3);for j in (0..3); t[4*i+j]=1 if t[4*j+i]==1 end end}
x.each{|t|for i in (0..3);for j in (0..3);for k in (0..3); t[4*i+k]=1 if t[4*i+j]+t[4*j+k]==2 end end end}
x.each{|t|for i in (0..3);for j in (0..3);for k in (0..3); t[4*i+k]=1 if t[4*i+j]+t[4*j+k]==2 end end end}
p x.uniq.count

16個の電球の点灯パターンを全部出して、条件3つを満たすように点灯するべき電球を点灯させました。
3つめの条件は、2回通しています。それは、一巡目で通過後に点灯することになった電球があるので、それによって点灯することになった電球を点灯させるためです。
最後に、重複をチェックして、カウントです。
   9月4日(月) 15:42:08     52744

過去問題一覧へ戻る