|
「数学」小旅行 |
|
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 |