2011-04-01から1ヶ月間の記事一覧

モンテカルロ法と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とかなんだかかっこいい名前で呼ばれている。必殺技みたいだ。 やっぱりこの手のものは視覚的に見えると楽しいなあ。

題名なし

よくあるnext_permutationのサンプル #include<iostream> #include<vector> #include<algorithm> void printvec( std::vector<int> &v){ for( int i = 0; i < v.size(); ++i ){ std::cout << v[i] << " "; } std::cout << std::endl; } int main(){ std::vector<int> v, e; v.push_back(1); v.push_b</int></int></algorithm></vector></iostream>…

複数の数字から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とかもやれちゃう。 なんだかもう、前処理はクライアント側でやらせて、サーバはサボっててもいいんじゃないか。 どんなやつでもかかってこいという感じですか。まあ、一部ブラウザは除きますが・・・ そんなわけ…