shinh #4382(2007/11/23 23:02 GMT) [ Ruby ] Rating4/4=1.00
それなりに速く終わるやつを。手元で1秒切ります。たぶん正しい気がするんですが自信は無いような。 というかたぶんn=7以降は同じパターンで2種類しか解がない、と示せる気がします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
def x(b,a,n,e,z) if b==n if a==e puts (0...b).map{|i|"#{i.to_s(b)}*#{a[i].to_s(b)}"}*',' end else 1.upto(b<5?5:[n>1?[4-n,0].max+e[n]:99,b+2-z+n].min){|i|a[n]=i f=e.dup i.to_s(b).scan(/./){f[$&.to_i(b)]+=1} next if (0..n).any?{|j|f[j]>a[j]} x(b,a,n+1,f,z+i)} end end 2.upto(16){|b|p b x(b,[0]*b,0,[1]*b,0)}
Rating4/4=1.00-0+
2 replies [ reply ]
shinh #4382() [ Ruby ] Rating4/4=1.00
それなりに速く終わるやつを。手元で1秒切ります。たぶん正しい気がするんですが自信は無いような。 というかたぶんn=7以降は同じパターンで2種類しか解がない、と示せる気がします。
Rating4/4=1.00-0+
2 replies [ reply ]