0.00278%くらいの確率で通るコード
悪い意味で頭がおかしい
http://golf.shinh.org/p.rb?simple+octagon+tesselation
参戦者が少なくて寂しかったのですが、1人2人でも手を抜かずに!
というわけで、CとRubyで酷いことをやってしまいました。
C(119B)
i,j,k; main(a,n) { for( n%=33u; i<n; putchar( ++j+a>n-fmax(k=n%4*3-(i>9?n+~i:i)/3*3,0) ? j=!++i,10 : " #"[j>k&&a^j%3&1] ) )a=i%3<1; }
Ruby(105B)
i=0;eval'(1..n-[k=n%4-[i,n-i+=1].min/3,0].max*3-a=i%3&1).map{|j|putc" #"[j>k*3?a^j%3&1:0]};puts;'*n=id%33
グレイコードの時も使われた、乱数を利用する方法を用いたわけですが、普通は10未満の小さな値でやります。でないと確率がバカみたいに低いからです。0〜4を出すだけで5×5×5=125分の1で、100回前後postしなければならないわけですが、今回は33×33×33=35937分の1という確率のコードを通しました。しかもCとRubyで2回も(;´Д`)
最初に通したときは、34000回くらいで通りました。2回目は22000回くらい。もちろん100回程度で通るバージョンは何度も通してるので、post回数は軽く60000回は超えると思います。
shinhさんゴメンナサイもうしません(´ω`)