Programming

Python環境でScala風リスト操作をできるようにするパッチを書いた

abst こういう書き方ができるようになるパッチ書いた [1, 2, 3, 4].map(_ * 10).reduce(_ + _) motivation かねてよりpythonのmap,filter,reduceはうっとしくてかなわん、と思っていた。何より、 method chain にまったく向いていない。 例えば、Scalaでは以…

ついでにGibbs samplerもcanvasで書いてみる

MetropolisがGibbsと並んで有名って言うなら、Gibbsもやってみなければいけない。 というわけでやってみた。 ここであそべる おおー。たのしい。 ただ、無相関の2変量ガウスでこれをやっても楽しさ半減ですね…

MetropolisサンプラーをHTML5のcanvasで描いてみる

MCMCの中でもGibbs samplerと並んで有名なMetropolis samplingをjsでやってみる。 HTML5のcanvasを使って視覚化もしてみる。 このへんであそべる赤いところがAcceptされたサンプル、青いのがRejectされた動き moreで1ステップとか2ステップづつ進むとニョロ…

切符の番号とかナンバープレートの4つの数字と+−×÷を使って10を作るアレを解いてみる

切符にプリントされている4個の数字とか、ナンバープレートに書かれている4桁の数字を、四則演算のみを使って10にするという遊びあるじゃないですか。そう、あれ。あれです。誰か名前を付けていてもよさそうなんだけど、特別名前が付いている訳でもなさそ…

モンテカルロ法とJavaScriptでπ

これはもう説明が全く不要な、コード書く人なら間違いなく通る、モンテカルロシミュレーションでπの値を計算しようという遊び。 これはとても楽しい。視覚化されると楽しさ10倍。というわけでわりと投げやりにJavaScriptで書いた。 ここであそべる 画像にあ…

括弧対応をとる

一瞬必要だったので。corr_tableをいじればどんな組でも可。括弧の交差はダメ。 var corr_table = { '(' : ')', '[' : ']' }; function checkBrackets( t ){ var stack = []; for( var i = 0; i < t.length; ++i ){ for( var j in corr_table ){ if( t[i] ==…

迷路生成器と迷路解き器

解き器って。 折角迷路生成器を作ったなら、ソルバ(逃げた)も書いたほうが楽しい。というわけで作った。 例によってこの辺で遊べる 生成はみんな大好き深さ優先、ソルバは普段あまりお目にかかりにくい幅優先。学生のお勉強にはもってこいですね。社会人の…

迷路生成器

そんな分野があるなんて。 楽しすぎるぜ。というわけで作った。 このへんであそべるごくごく単純な深さ優先探索。recursive backtrackerとかなんだかかっこいい名前で呼ばれている。必殺技みたいだ。 やっぱりこの手のものは視覚的に見えると楽しいなあ。

複数の数字から3つ選んで三角形になるかどうかを調べるとかいう話

とある本に書いてあったオマケ話。多分こう。1. ソートして、大きい方からウインドウサイズ3で配列を見る。 2. 一番大きい辺が残りの2辺の和より大きければ三角形を作らない。そうじゃなければ終わり。 3. 一番大きい辺と比べて、次に大きい辺と次の次に大…

Three-way quicksortをJavaScriptで書いた。

普通Quick Sortっていうと、ピボットが1つなんだけど、ピボット2つで区間を3分割して考えるのが3-way quicksortです。 分割された区間は、ある値よりも小さいか、同じか、大きいか、で分けられているだけで、それ以外は普通のquicksortです。 例によってJava…

JavascriptでTrieデータ構造のVisualizationをやってみた

TRIEに対するオペレーションを視覚的に表示する謎のスクリプトを書いた。視覚化、といっても、要するにツリーを作るコンポーネント使っただけ。視覚化しなくてもTRIEは分かりやすいので誰得もいいとこなんですが、それはそれ。 こちらで遊べます =>"Trieのデ…

JavaScriptでDancingLinksアルゴリズムによる数独ソルバを作った

昨今のJSエンジンはすごい。とにかく速い。3Dとかもやれちゃう。 なんだかもう、前処理はクライアント側でやらせて、サーバはサボっててもいいんじゃないか。 どんなやつでもかかってこいという感じですか。まあ、一部ブラウザは除きますが・・・ そんなわけ…

DjangoでXMLRPCとかを使うとき

なんか403になるなー、と思ったら、CSRF対策をご丁寧にDjangoさんがやってくれちゃってます。 さすが、ジプシージャズの帝王は違うね。 ●対策 突貫でやるなら@csrf_exemptデコレータでOFF。 詳しくは本家本家いわく、あまりオススメの方法でないそうですが、…

新言語

NTTはもう少しまじめくさいところだと思っていた。 NTTの人が書いたプログラミング言語のhttp://www.brl.ntt.co.jp/people/hirata/Papers/spa99.pdf:論文。 その名も、織田信長。 論文の字面の時点ですでにシュールすぎるが、この言語の真価はその由来にある…