タグ

ブックマーク / www.kmonos.net (6)

  • TRICK 2018 (FINAL) 3連覇! d.y.d.

    21:24 18/06/02 TRICK 2018 (FINAL) 3連覇! 世界の Rubyist が集う RubyKaigi というイベントに時々併設される、 TRICK というコンテストがあります。 「一番変なRubyプログラムを書いたヤツが勝ち」というコンテストです。 前々回(Rubyでいろは歌)、 そして 前回(Ruby円周率覚え歌) と、なんとも驚いたことに私が2回続けて優勝していたのですが、今年が第3回。 やりました。3連覇を達成しました!今回のネタは… 予約語テーブル Ruby の言語仕様のページに、 予約語の一覧を表にしたものがあるんですよ。これです。 これの真似をして予約語を並べてみました、というのが今回の作品です。 alias BEGIN for unless def class super true or return defined? next break wh

    dowhile
    dowhile 2018/06/04
  • TRICK 2013 @ RubyKaigi - d.y.d.

    22:41 13/06/01 TRICK 2013 @ RubyKaigi いろは歌。 in Ruby. !@THEqQUICKbBROWNfFXjJMPSvVLAZYDGgkyz&[%r{\"}mosx,4>6]|?'while(putc 3_0-~$.+=9/2^5;)<18*7and:`# ということで、ASCII の制御文字じゃない部分、' ' (0x20) から '~' (0x7E) まで95文字をちょうど一回ずつ使って、 その95文字をちょうど一回ずつ標準出力に書くプログラムです。Ruby会議に合わせて開かれた TRICK 2013 という、プログラムの"お前はなにをやっているんだ度"を競うコンテストに出してみたら優勝してしまいました。 やった! 簡単な解説 「各文字を1回しか使わない」 という制約が真っ先に効いてくるのは、 これすなわち、 1個の変数を1度しか使えない、 とい

    dowhile
    dowhile 2013/06/04
  • ICFPC 2011 - d.y.d.

    22:15 11/06/27 ICFPC 2011 ここ 8 年くらいほぼ毎年参加していた ICFP Programming Contest ですが、今年は出題者側に回ってみました。 問題の原型決定の議論、画像に変なネタを仕込む、Windows版バイナリのビルドをする、対戦サーバの中身を突貫でどうにかする、 などなどをしていました。 ゲームのバランス調整が非常によくできていたとの評価を頂いているのですが、 肝心のその辺りは、出題チーム内の熟練者達の高度な議論に既についていけなくなっており、 私は全然貢献できていないという…。 詳しいことは 9 月の ICFP で発表があると思いますので、ここでは今年のテーマの紹介だけ。 公式の問題文はこちら です。 一言でいうと、関数を呪文に変えて撃ち合う、プログラミング魔法バトル。 Lambda: the Gathering L:tG という2人対戦ゲー

  • 正規表現しちへんげ! 第二夜

    09:25 10/12/31 年末まとめ 今年何やったっけ、と日記を読み返していました。何もやってないな…。 Polemy 作りました、くらい。 言語処理系作るのはやっぱり楽しいですね。 汎用言語として使う格的なものを作ろうとすると懲りすぎて一歩も進まなくなってしまう自分が見えるので、 来年は、そうだなあ、TopCoder/ICPC風コンテストに特化した言語というかC++へのトランスレータ、 くらいに絞って作ってみようかなあ。 書いた記事だと 最短性チェックの話 が自分では割と気に入っています。 これのもっとバグを許容するバージョン作れないか。 読んだ論文で面白かったのは "A Pearl on SAT Solving in Prolog" と "When Simulation Meets Antichains" (PDF) など。 あとは、今年読んで面白かったベスト5(順不同): 『

    dowhile
    dowhile 2010/12/20
  • 階乗を求める - d.y.d.

    22:56 10/09/04 階乗を求める 去年聞いた中で、私が一番感動した式の話。 k! = limn→∞ nk / nCk kの階乗は、「nのk乗 ÷ n個のものからk個選ぶ組み合わせの数」という式で n を無限に大きくしていったときの収束先、である。 特に難しい証明が要るとかではなくて、nCk = n(n-1)(n-2)...(n-k+1) / k! であることを使うと、 limn→∞ nk / nCk = limn→∞ nk k! / n(n-1)(n-2)...(n-k+1) で、n が k に比べて十分大きければ n も n-k+1 もほとんど同じ値なので、 分子も分母もだいたい n を k 個かけているわけでして、 その部分が相殺して、k! が残るという寸法。 (厳密な表現ではないので、気になる人は厳密に証明してください。) 実装 と、この式自体はそんなに不思議ではないのです

  • アルゴリズムコンテストの挑み方 - d.y.d.

    17:29 08/09/30 クロスワード 暇つぶしに "Clueless Crossword" という冊子を買ってみて意外とハマっています。 クロスワードパズルなんだけど、単語のヒントの代わりに、 各マスに1~26の数字が振ってあって同じ数字のマスには同じA~Zが入るように埋めるというもの。 「母音っぽくて二連続して語尾にも出てくるのは多分 E だろう、もしかしたら O の可能性はなくもないけど」 みたいに埋めていく。 ちょっと違うけど フラッシュであった。 20:15 08/09/28 だいちのよろい そろそろ日に戻る前に観光するぞ月間、ということにして、ウルル(エアーズロック)に行ってきました。 もっとワイルドな感じかと思ったら、完全にリゾートのリゾートによるリゾートのための地帯になってました。 まあそんなもんか。 日は強風のため登るの禁止とのことだったので、周りから見るだけ。

  • 1