2008-09-01から1ヶ月間の記事一覧

渋谷Googleオフィスいってきたよ!

というわけで、昨日は Google Code Jam で渋谷まで行ってきました。用意されてたPC環境は、会社で使ってるのと同じDELLの24インチ液晶と微妙なキーボードと握りにくいマウスだった。 椅子が無駄にリープチェアだった。家で使ってるのとは違うモデルだけど。A…

コード

wwWWwWWWwWWWWWWw # s2n1 vwwWWwWWWw # s2 vwWWwwwWwwwwwwWWWwWWWWWwwwwWwwWWwWwwwwwwwwwwww # mkwWv vWwwwWWwww # ch_v, ch_W vwwWWWWWWWWww # mkout vWwwwWWwwwwwwwwwwWWWwwww # out_v, out_w, out_W vwWwwwwWwwwwWwwww # tr1 = triplet(out_v, out_w, out…

つづき

(m-n)%3 をどうやって計算するか?

つづき

上の続き

さすがにもう縮まないのでネタバレ

最終的に1525バイトになった。劇的に縮められる新機軸はもうなさそうなのでネタバレ

結局

$ ls -l quine5* -rw-r--r-- 1 kik kik 1856 2008-09-13 08:23 quine5-out.grass -rw-r--r-- 1 kik kik 1856 2008-09-13 08:23 quine5.grass -rw-r--r-- 1 kik kik 2294 2008-09-13 08:20 quine5.rb頑張って最適化して、1856Bになった。これはしばらく抜かれ…

新しい方法があまりに斬新なので

一晩で実装してしまった。 $ ruby grass.rb quine5.grass >quine5-out.grass $ cmp quine5.grass quine5-out.grass $ ls -l quine5* -rw-r--r-- 1 kik kik 2462 2008-09-13 06:19 quine5-out.grass -rw-r--r-- 1 kik kik 2462 2008-09-13 06:19 quine5.grass…

wWvを生成するコードをもらってきた

昨日の続きwWvを生成するコードを短くして、細かい最適化をやったところ $ time ruby grass.rb quine4.grass >quine4-out.grass real 0m0.796s user 0m0.704s sys 0m0.040s $ cmp quine4.grass quine4-out.grass $ ls -l quine4* -rw-r--r-- 1 kik kik 8947 …

コードサイズをmainに比例するようにした

昨日の続き。昨日のはコードサイズがmainの自乗に比例していたので、1MBになった。 今回は定数倍ですむようにした。定数倍にするには let data p1 w W v = v(W(W(w(w(w(W(W(W(...(W(p1))...)))))))を let dat1 w W v = w (dat0 w W v) in let dat2 w W v = W…

Quine作った

みんなQuine作ってるので、作ってみた。 $ time ruby grass.rb quine1.grass >quine1-out.grass real 1m16.528s user 1m13.429s sys 0m3.108s $ cmp quine1.grass quine1-out.grass $ ls -l quine1*.grass -rw-r--r-- 1 kik kik 1087824 2008-09-11 00:54 qu…

問題を作ってみたはいいが…

真面目に考えてみると、最初に適当に実装した解等よりさっぱり縮まない… アプローチはいくつかあると思ったのだが、最初に選んだのが一番だったっぽい。しかたがないので、echo(http://golf.shinh.org/p.rb?echo) をエラーなく実行するコードを書いた。 http…

なんでもできるぞー

チャーチ数を使って計算してみるテスト。810バイト。全然縮んでない。チャーチ数を使うと、掛け算が簡単だ。べき乗はさらに簡単だ。169とか251とか重要な数値が簡単に作れるぞー。頑張れば縮むと思うんだけどなあ。なんつーかかっこいいし require 'compile.…

あなごる

とりあえず面白そうな問題を思いついたので、あなごるに置いといた。 適当にこさえた答えをコミットしておいたけど、たぶん無駄だらけだと思う。

まじめに縮めてみる

上のアプローチで縮めてみた。 require 'compile.rb' compile do let.idt = abs x do end let.pr = abs a, b, c, d do out(d(c(b(a(idt))),ch119)) end # f0 f = f+f let.f0 = abs f, x do f(f(x)) end # f1 f = f+f+1 let.f1 = abs f, x do succ(f0(f,x)) e…

Hello, world!

草アセンブラとHello, world!を書いた。compile.rb やばい。適当に書きすぎてわけわからん。 INIT_ENV = [:out, :succ, :ch119, :inp] class Let def initialize(e) @e = e end def method_missing(name, *args) name = name.to_s raise NameError.new("Unkn…

いつ見ても思うんだけど

http://blog.goo.ne.jp/hosakanobuto/e/a2168106657ebdc9b80ae5c53dc20753 私は、学生たちに問うた。なぜ、日本でテストをやって一番いい点とは「100点」なのかと。その答えは、簡単である。 「100点」とは間違いがなかったということであり、評価方法が「減…