“斜め方向から fib を高速化する方法”を JavaScript で - Smalltalkのtは小文字です フィボナッチ数を線形時間で計算する方法。すごい。 前に Haskell で遅延評価を使って似たようなことやる方法を見たことがあったんだけど、まさか JavaScript でもこういう... 続きを読む
最強最速アルゴリズマー養成講座:病みつきになる「動的計画法」、その深淵に迫る (1/4) 数回にわたって動的計画法・メモ化再帰について解説してきましたが、今回は実践編として、ナップサック問題への挑戦を足がかりに、その長所と短所の紹介、理解度チェック... 続きを読む
最強最速アルゴリズマー養成講座:トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター (1/4) プログラミングにおける重要な概念である「探索」を最速でマスターするために、今回は少し応用となる探索手法などを紹介しながら、そ... 続きを読む
都会よりも田舎が好きなfujisawaです。Bayesian Setsというアルゴリズムを使って、関連する文書を高速・高精度に検索できるシステムを作成しましたので、そのご紹介をさせていただきます。 Bayesian Setsとは Bayesian Setsはいくつかアイテムを入力すると、そ... 続きを読む
第二回 プログラムコンテスト企画 1000万個目の素数を超高速に出力せよ どもまたまたやってきました。プログラムコンテスト企画、第二弾! すごく盛り上がりましたので、またその内容をお伝えしたいと思います。 今回のルールは 「2」を1個目として、1000万個... 続きを読む
ふと、ビット並列アルゴリズムを使った編集距離を計算するアルゴリズムを書きたくなったので書いてみた。まず、通常の編集距離であるLevenshtein Distanceを求めるアルゴリズムは以下のように書ける int levenshteinDistance(String A, String B) { int m = A.l... 続きを読む
ここでは、プログラムなどでよく使用されるアルゴリズムについて紹介したいと思います。 元々は、自分の頭の中を整理することを目的にこのコーナーを開設してみたのですが、最近は継続させることを目的に新しいネタを探すようになってきました。まだまだ面白い... 続きを読む
AlgorithmWebエンジニアバトルロワイヤルでは、平面分割手法としてボロノイ図と「疑似築道法」というものをデモしたんですが、そのとき説明に使った4種類の2次元ボロノイ図を以下に載せます。通常のボロノイ図「どの母点が最も近くにあるか」にもとづいて平面を... 続きを読む
相対性理論のボーカルが頭から離れないmikioです。熱いわっふるの声に応えて今回はTokyo Cabinetのテーブルデータベースにおける検索機能の実装について語ってみたいと思います。とても長いのですが、最後まで読んだあかつきには、自分でも全文検索エンジンを作... 続きを読む
逆転検事を先日クリアして、久しぶりに逆転裁判1〜3をやり直そうか迷い中のfujisawaです。シンプルなデータクラスタリングツールを作成しましたので、そのご紹介をさせていただきます。 クラスタリングとは クラスタリングとは、対象のデータ集合中で似ているも... 続きを読む
ひとりごと | 20:20 | 同期に教えてもらったページ新しい検索サービス、作っています。 - NAVERどんなになるんだろう。韓国のNAVERを見るかぎりは、ヤフーっぽいし。よっぽどじゃないと、検索ポータルって難しいんじゃないかなと… あと、Web上でLaTeXが書ける... 続きを読む
JavaWelcome to JGraphT - a free Java Graph LibraryJGraphTは、Javaのグラフライブラリです。グラフの描画ではなく、グラフ理論のモデルとアルゴリズムの方にフォーカスしています。とても使いやすかったので、紹介してみます。無向グラフ UndirectedGraph g ... 続きを読む
昨年から続いているアルゴリズムイントロダクション輪講も、早いもので次は18章です。18章のテーマはB木(B Tree, Bツリー) です。B木はマルチウェイ平衡木(多分木による平衡木)で、データベースやファイルシステムなどでも良く使われる重要なデータ構造です。B... 続きを読む
集合知プログラミング を読んでいたら、K-means 法(K平均法)の説明が出てきました。K-means 法はクラスタリングを行うための定番のアルゴリズムらしいです。存在は知っていたんだけどいまいちピンときていなかったので、動作を理解するためにサンプルを作って... 続きを読む
ベイジアンフィルタとかベイズ理論とかを勉強するにあたって、最初はなんだかよくわからないと思うので、そんな人にお勧めのサイトを書き残しておきます。@IT スパム対策の基本技術解説(前編)綱引きに蛇口当てゲーム?!楽しく学ぶベイズフィルターの仕組みht... 続きを読む
アルゴリズムイントロダクション15章 動的計画法 アルゴリズムイントロダクション 15 章 動的計画法 2009/3/2 id:nitoyon 動的計画法 (dynamic programming) 部分問題をボトムアップに 解いて統合する 動的計画法のアルゴリズム • 最適解の構造を特徴づける •... 続きを読む
現実逃避をしながらウェブを眺めていたら ダイクストラ法(最短経路問題) にたどり着きました。単一始点最短路問題におけるダイクストラ法の解説です。何を思ったのか、図を眺めていたところ動かしたい衝動に駆られて、気付いたらパワポでアニメーションができ... 続きを読む
これなのですが.... 同じ文字列のn回繰り返しを作る最速の方法を探求してみた - muddy brown thang ちょっとした事情により、ある文字列のn回繰り返しを作る関数 (PHPでいうところのarray_repeat(), Perlで言うところの「"..." x n」、RubyやPythonで言うところ... 続きを読む
NAIST の入学手続を終えた. 残りの期間はサーベイするぞーということで shimbo 先生の講義資料「リンク解析とその周辺の話題」を読んでいます. 一日目, 二日目の資料は PageRank, HITS, SALSA などの重要度尺度の紹介と, von Neumann Kernels と HITS の関係に... 続きを読む
機械学習系のエントリを続けて書いてみる。クラスタリングについて知らない人は以下のエントリ読んでもちんぷんかんぷんだと思うので、クラスタリングという概念については知っているものとする。それで、今日はスペクトラルクラスタリングの話。自然言語処理以... 続きを読む
同じ文字列のn回繰り返しを作る最速の方法を探求してみた - muddy brown thangパズルっぽくておもしろかったのでやってみた。と、別のところにも書いたのだけど、あそこじゃあ反応が薄いので、見てる人が多そうなこっちで聞いてみる。 function(s,n){ var q = '... 続きを読む
類似AA判定アルゴリズム 1 :デフォルトの名無しさん:2005/12/23(金) 21:31:03 かなり難しいと思うが、できますか? 2 :デフォルトの名無しさん:2005/12/23(金) 21:40:39 できます。2げっと 3 :デフォルトの名無しさん:2005/12/23(金) 21:41:33 AA自体を... 続きを読む
1 Abhinandan Das, Mayur Datar, Ashutosh Garg, Shyam Rajaram,“Google News Personalization: Scalable Online Collaborative Filtering”, WWW2007,pp271-pp280 全体像 GoogleNews のレコ メンドの裏側 目的:実際のシステム で、どのように協調... 続きを読む
Complement Naive BayesがSVMより速いよーと主張していたので、SVMもなんか最近は速くなってるらしいよ、という事を紹介してみたい。近年はSVMなどの学習を高速に行うという提案が行われており、実装が公開されているものもある。その中の一つにliblinearという... 続きを読む
新はてブ正式リリース記念ということで。もうリリースから何週間も経っちゃったけど。 新はてなブックマークではブックマークエントリをカテゴリへと自動で分類しているが、このカテゴリ分類に使われているアルゴリズムはComplement Naive Bayesらしい。今日は... 続きを読む
そろそろ落ち着いて来たころ合いなので、はてなブックマーク全文検索機能の裏側について書いてみることにします。PFI側は、8月ぐらいからバイトに来てもらっているid:nobu-qと、id:kzkの2人がメインになって進めました(参考: 制作スタッフ)。数学的な所は他のメ... 続きを読む
先日、全体ゼミで発表したときの内容ですが、ここにまとめときます。。GoogleNewsのレコメンドの中身を追った論文の要約です。少し前の全体ゼミで用いた資料です。ソース:Abhinandan Das,Mayur Datar,Ashutosh Garg,Shyam Rajaram,"Google News Personalizatio... 続きを読む
Nov. 17, 2008 | Technology | Science Pinning down the fleeting Internet: Web crawler archives historical data for easy searching The Internet contains vast amounts of information, much of it unorganized. But what you see online at any given m... 続きを読む
機械学習, プログラム | 15:43 | Dan Pelleg, Andrew Moore,X-means: Extending K-means with Efficient Estimation of the Number of ClustersProceedings of the Seventeenth International Conference on Machine Learning, pp.727-734, 2000.で紹介されてい... 続きを読む
圧縮全文索引の実装などでしばしば利用される Rank/Select 辞書と呼ばれるデータ構造があります。詳しくは参考文献を参照していただくとして、今回は一般の文字列に対して効率的に Rank/Select を可能とするデータ構造である Wavelet Tree (ウェーブレット木) ... 続きを読む
はじめに クラスタリングアルゴリズムにより、解くと絵が浮かび上がる 迷路を作成する方法を紹介する。 クラスタリングとは ウェブのリンク情報や、mixiの友人関係など、ネットワークの性質を 知りたいことがよくある。このとき、ネットワークの性質として この... 続きを読む
20:24 08/11/09 アルゴリズムコンテストの挑み方 (3) TopCoderのAlgorithm部門や、Google Code Jamや、ACM/ICPC のような、 短時間でアルゴリズミックなコードを書くコンテストに挑むときに私が考えていることシリーズ。 第1回(書く前に実行時間を見積もる)... 続きを読む
a novel treemap data visualization approach that uses Voronoi tesselations (a polygon-based subdivision algorithm) instead of rectangular shapes. it attempts to avoid the problems with the aspect ratio of the rectangles as well as with identi... 続きを読む
,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ| あ…ありのまま 今日 起こった事を話すぜ! |i i| }! }} //| |l、{ j} /,,ィ//| 『BWT について調べていたら Suffix Array のライブラリができていた... 続きを読む
自然言語処理のときに使う機械学習手法のテクニックをざーっと2時間程度で紹介してほしいとのことだったので今日話してきました。基本的に、そんなに頑張らなくても効果が大きいものを中心に説明(特にパーセプトロンとか)を説明してます。 紹介した手法はパ... 続きを読む
« MySQL のクエリ最適化における、もうひとつの検証方法 | メイン | MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話 » 2008年06月09日 フレンド・タイムライン処理の原理と実践 MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化... 続きを読む
行数を数えているのですが、コメント欄他のstr.split(/\n/).lengthはかっこいいけどoverkill 404 Blog Not Found:javascript - String.prototype.tr() released 本当でしょうか? 実際に試してみましょう。変数 s が対象文字列を指しているものとします。 // cha... 続きを読む
Full source of Sequitur with many options An ObjectPascal implementation by Michalis Kamburelis. Michalis' server is a little slow, so I've mirrored his tarball. SEQUITUR is a method for inferring compositional hierarchies from strings. It de... 続きを読む
In real-life examples such as horse racing, the pool size often extends into millions of dollars with many different types of outcomes (winning horses) and complex commission calculations. Sometimes the amounts paid out are rounded down to a ... 続きを読む
Google Maps gives you API for adding additional map layers. This software implements a map tile server for a heatmap layer. How it WorksThis is a standalone web app that responds to URLs of the form /<color_scheme>/<zoom>/<x>,<y>.pngwith 256p... 続きを読む
文:Stephen Shankland(CNET News.com) 翻訳校正:編集部 2008/04/18 15:32 Googleは一般的に、自社検索事業に関する社内作業についてほとんど口にすることはないが、Googleの検索品質担当バイスプレジデントであるUdi Manber氏に対して行ったPopular Mecha... 続きを読む
★ 巡回セールスマン問題 (TSP) 巡回セールスマン問題 (Traveling Salesperson Problem : TSP)は、 セールスマンがN個の都市を1回ずつ通って巡回する最短の経路を見つける問題です。 TSPには多くの応用例があり、実用上でも重要な問題です。 例えば、プリント基... 続きを読む
サグールテレビ(http://sagool.tv) プレゼンツ プログラム&アルゴリズムコンテスト! ■お題 「未知なるブログページ(HTML)を入力させると、そこから ブログ本文のみを抽出するエンジンを作ってください」 ■賞品 1位 賞状 賞金 5万円!(現金) サグール... 続きを読む
補3.1961年の東大旅研最長片道切符旅行は最長ではなかった? 前書きに記したように、最初に国鉄の最長片道切符旅行を行ったのは、東京大学旅行研究会の会員4名で、1961年7月に鹿児島県海潟駅から北海道広尾駅に至る12,145.3キロを旅行したものだという。 この... 続きを読む
Darts: Double-ARray Trie System はじめに Darts は, Double-Array [Aoe 1989]を構築するための シンプルな C++ Template Library です. Double-Array は Trie を表現するためのデータ構造です. ハッシュ木, デジタルトライ, パトリシア木, Suffix Array によ... 続きを読む
はじめまして。mixi開発部・運用グループでアプリケーションの運用を担当しているmikiokatoといいます。週に一日興味があることについて研究や開発ができるOneDayFree の制度を使って開発し、12月25日にリリースしたインディーズ機能「おすすめ マイミクシィ/... 続きを読む
「Google Operating System」はブログ記事で興味深い指摘をしている。最近Googleのアルゴリズムに変更があったというのだ。従来に比べて、新しいコンテンツにより高い優先順位が与えられるようになったらしい。挙げられた例を検討すると、どうやらこの推測は正... 続きを読む
The requested blog was not found on this server -- unless you requested that of Dan Kogai (小飼 弾). ベキ乗アルゴリズム再考 ベキ乗のやり方として、すぐに思いつくのは以下の方法です。 function power(b, n){ var result = 1; while(n--) result *= b;... 続きを読む
見てのとおり、二番目の方ではナイーブ実装な実行された回数を数えている。何と出たであろうか。 見ての通り、上のプログラムでは、実行前にメモをわざわざ空にしている。それにも関わらず、ナイーブ実装が呼ばれる回数は厳密にnだ。なぜだろう? 答えは、fib(n-... 続きを読む
404 Blog Not Found:プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10、これほどの反響になるとは。200ブクマぐらいは予想していたが、もいくとは。 とりあえず、本の仮題を「アルゴリズム百選」として、「アマグラマーのすすめ」と同じように本... 続きを読む
030525 : FreeSSL 030525 : 2chトリップ 030525 : FreeSSL SSL(httpsプロトコル)を利用するには、ルート証明機関からサーバ証明書を拾得しなければなりません。が、これの年間維持費はだいたい500ドルくらい掛かります。ADSL自前鯖でSSLをサポートしようとす... 続きを読む
Andere blog items 30-sep-2008 Falen is goed 29-aug-2008 Persistence in OSGi with OpenJPA -- part 2 11-jun-2008 The Component Framework, a report from the OSGi Community Event in Berlin 11-apr-2008 ApacheCon EU 2008 24-mrt-2008 JPA persistence... 続きを読む
ただし,データ集合 は,ベクトルで表現されたデータ の集合. クラスタ は,データ集合の網羅的で互いに素な部分集合. は 中の重心(セントロイドともいう). はユークリッドノルム. ↑ アルゴリズム † 入力はデータ集合 とクラスタ数 ,および最大反復数 ma... 続きを読む
カイ二乗値で単語間の関連の強さを調べる 2007-09-19-1 [Algorithm][Programming] カイ2乗値を使って単語間の関連度を調べる方法。 つまり、関連語を探すときに、χ二乗値を関連度として使う。 perl によるサンプルコード (chi.pl)。昔、勉強がてら作ったコード... 続きを読む
現行の『祝日法』で定められている祝日等の情報をまとめています。 カレンダー処理などを構築する際の参考にしてください。 平成15年より施行される改正祝日法には、あまり世間一般には知れ渡っていない隠れた 祝日(休日)が存在します。詳細はこちらをご覧... 続きを読む
INDEX はじめに PageRank の基本概念 どうやって PageRank を求めるか 現実に適用する際の問題 Namazu での実装実験 PageRank に対する個人的見解 参考文献 おまけ:「グーグル?/ゴーグル?」 Since: Thu Feb 1 18:22:44 JST 2001 Last Refreshed: Sat Jan 24... 続きを読む
図1に示す(1)から(3)までの麻雀(マージャン)の手牌があります。「あがり牌」はすべて山からツモったものとし,リーチはかけていません。またドラやハイテイ*1なども関係ないものとします。これらの役を判定して,親の場合の点数を計算するプログラムを作って... 続きを読む
Jeff Atwood / 青木靖 訳 2007年2月26日 レジナルド・ブレイスウェイトが書いていることを読んだとき、私はそんなわけないだろうと思っていた。 私と同様、この著者は、プログラミングの仕事への応募者200人中199人はコードがまったく書けないということで苦労... 続きを読む
4DM.org トップ / PKU / D言語 / グラフ理論 / ステレオグラフィックス / Cozy Ozy / アンテナ / リンク / ダウンロード / プロフィール PKU JudgeOnline PKU JudgeOnlineとは、世界各国で過去に行われたプログラミングコンテストの問題を集めていて、解答のプ... 続きを読む
Dynamic Programming による類似文字列マッチの実装例 2007-01-22-4 [Programming][Algorithm] 「Modern Information Retrieval」(8.6.1 p.216) での Dynamic Programming (DP) の解説のところのアルゴリズムを 素直に Perl で実装したみた。 さらにマッチ箇所... 続きを読む
sqkNXA <a href="http://uimscfwbieii.com/">uimscfwbieii</a>, [url=http://albwbwdbzeae.com/]albwbwdbzeae[/url], [link=http://fxjgddxwkeyh.com/]fxjgddxwkeyh[/link], http://ylbvyauorhor.com/ 続きを読む
Levenshtein Distance Levenshtein Distance, in Three Flavors by Michael Gilleland The purpose of this short essay is to describe the Levenshtein distance algorithm and show how it can be implemented in three different programming languages. Wh... 続きを読む
文書比較アルゴリズム 前のドキュメント 次のドキュメント ViViの文書比較機能で使用しているアルゴリズムについて解説する。 これらのアルゴリズムは Myers 氏らの論文によるもので、氏は筆者のためにわざわざ論文をWebサイトで入手可能な形式にしてく... 続きを読む
連載すんの? リファクタリングとか嘘で実は実践ビルトインオブジェクトハックなんだけど。 例題 配列 a = [3,5,4,2,1] から一番小さな値と、一番大きな値を取り出すにはどうすればいいか。 多分昔はこんな風に書いてたと思うんですよ。 a = [3,5,4,2,1]; for(i... 続きを読む
■ 順列型の最小完全ハッシュ関数 0から4までの5個の数字が下のように並んでいる場合を例にして説明します。 5個の数字の並べ方は5!通りありますので5!(=120)通りの並べ方の総てに対して0から119までの数値を一意に割り付けることが目的となります。 ... 続きを読む
GoogleがM&Aを急ぐ理由 ーPageRankが崩壊する日ー 公開日時: 2006/11/30 23:47 著者: 桜谷慎一 増殖するインターネット 1993年にインターネットブラウザの祖『MOSAIC』がリリースされてから、インターネットは世界規模で本格的に普及しました。”インターネ... 続きを読む
このようにして3!が計算されます。 このような定義の仕方を再帰的定義と言います。 この階乗関数を Basic プログラムとして実現してみると,(Tiny Basic には階乗関数 Factorial が内蔵されていますから,実際にこのようなプログラムを書く必要はありません... 続きを読む
むしろ私はこうしてきた。 まずは再帰で実装する。 速度と資源の制約があるとき、非再帰で実装しなおす 一番の理由は、今やプログラミングそのもののコストの方がプログラムを実行するコストよりも大きいからだ。早くプログラムを書く要請の方が速いプログラム... 続きを読む
プログラミングの話なので、ソフトウェアを使うだけのユーザーには関係ない話です。 要するに実行速度の遅いプログラムを2倍から4倍高速化させるには非常に基本的なトリックというか技術を使えば可能ですよ、というお話。 アルゴリズムの考え方なので、仕事上ど... 続きを読む
第4回 これだけは知っておきたいアルゴリズム 〜ハッシュ関数・公開鍵暗号・デジタル署名編 神田 雅透 NTT情報流通プラットフォーム研究所 情報セキュリティプロジェクト 主任研究員 博士(工学) 2006/7/11 前回の共通鍵暗号の紹介に引き続き、安全性・処理性... 続きを読む
Rabin Karp アルゴリズムでコード重複の検出 YAPC::NA で会った Fotango の Norman Nunley がつくってる Algorithm::RabinKarp モジュールが面白げです。 Rabin Karp 文字列探索アルゴリズム (wikipedia) を使って文字列のハッシュ(ダイジェスト)をチェックし... 続きを読む
Google「自然リンクと人工リンク」を区別 米Googleがリンクの取扱いについて自然リンクとそうでないリンクの定義と注意事項を公式ブログで記載している。 2006年06月19日 16:26 | ニュース 06H1 | TrackBack (7) | AddClipsUrl = 'http://www.sem-r.com/19/2006... 続きを読む
コラム アルゴリズム検索はもう限界か 専門の研究者にも役立つ無料の検索エンジンが使える幸せな時代がいずれ終わりを迎えそうだ。そのとき「メタ情報源」とも言える人たちの価値が再発見されるだろう。 2006年06月08日 10時08分 更新 インターネットの進化を振... 続きを読む
ブログ検索において、RSSは必ずしも記事全文を配信していないので、クローラーが記事のURLにアクセスし記事の本文を取得するケースが多いようです。 「gooブログ検索」「ブログレンジャー」開発者が語るブログ検索技術 Yahoo!検索 スタッフブログ Yahoo!ブログ... 続きを読む
TVやラジオは、潔い文化だ。はかない文化といってもいいかもしれない。どんなに優れた番組であっても、放送時間が終われば消えてしまう。それをたまたま見た人が、どんなに褒め称えようが、見なかった人は、想像するしかない。これをもって、批評がなりたたず、... 続きを読む
あのWinny開発者47氏こと「金子勇」氏が開発顧問を担当したセキュアなP2P大容量コンテンツ配信システムらしい。有料、無料、再生回数や再生期限の設定、コピーの制限など、コンテンツホルダーの希望通りの条件を設定しての配信が可能というのがポイント。今のWi... 続きを読む
NTTは13日、三菱電機と共同開発した128bitブロック暗号アルゴリズム「Camellia」のソースコードを、オープンソースとして公開した。NTTのサイトで、C言語版およびJava版のソースコードを公開している。 Camelliaは、ISO/IEC国際暗号標準(ISO/IEC18033-3)に... 続きを読む
いまやネットの世界を左右する強力な検索エンジンとなったGoogle。日本ではまだYahoo!の方がはるかに利用者が多いのでさほどではないですが、アルゴリズムの基本的な考えが似ているため、同じような結果が出てきます。つまり、既存の検索エンジンのその基礎と... 続きを読む
このページのダウンロード( 5.37 MB ) システム・エンジニアは,様々なシステムに対する分析,設計を行います.対象システムがコンピュータシステムである場合は勿論のこと,それ以外のシステムに対しても,分析や設計の際にコンピュータを使用する場合も多い... 続きを読む
株式会社はてなは16日、Blog サービス「はてなダイアリー」で最も言及数の多いキーワードを表示する機能である「注目キーワード」の算出方法を改良した。 「キーワード」は23万を越えるはてなダイアリーの本文から自動リンクでつながっており、ユーザー同士で編... 続きを読む
イケてないプログラム(使えない成果物)に見られる3つの共通点 クイックソートの話で書いたとおり、相変わらず Excel - VBA と格闘する日々が続いております・・・orz 「大企業にありがちな問題。委託開発の甘い罠・・・」でも書いたとおり、今まで外注して作... 続きを読む
一部の方々にご好評(?)頂いたので第二回です。 Rubyのプログラムで今月「日曜日」が何回あるのか教えてください。(「今月」はプログラム実行時のシステム時間でかまいません) 前回(http://www.hatena.ne.jp/1128425886)同様、以下の要領でお願いします。... 続きを読む
ここでは、プログラムなどでよく使用されるアルゴリズムについて紹介したいと思います。 こんなことやって意味あるのかどうか正直言って迷いました。プログラマはたいてい知っているような内容だし見る人もいないんじゃないかと思いましたが、これからプログラ... 続きを読む