タグ

Algorithmに関するhamastaのブックマーク (156)

  • Animated Algorithms : Sorting

    Sorting Algorithms This applet lets you observe the dynamic operation of several basic sort algorithms. The implementations, explanations and display technique are all taken from Algorithms in C++, Third Edition, Sedgewick, 1998. Generate a data set by clicking one of the data set buttons. This generates a data set with the appropriate characteristics. Each data set is an array of 512 values in th

  • Kazuho@Cybozu Labs: フレンド・タイムライン処理の原理と実践

    « MySQL のクエリ最適化における、もうひとつの検証方法 | メイン | MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話 » 2008年06月09日 フレンド・タイムライン処理の原理と実践 MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話に続きます。 Twitter が注目されるようになって久しい今日この頃ですが、友人の投稿を時系列に並べて表示する、というのは、Twitter に限らず Mixi の「マイミクシィ最新日記」やはてなブックマークの「お気に入り」等、ソーシャルなウェブサービスにおいては一般的な手法です。ですが、この処理 (以下「フレンド・タイムライン」と呼ぶ) は、一見簡単そうに見えて、実装には様々な困難が伴います。記事では、「フレンド・タイムライン」を実現する、プッシュ型とプル型の二種類の手法について、その原

  • TagGridのデータ配置アルゴリズムの簡単な解説 - llameradaの日記

    はじめに TagGridでは16000毎のFlickrの写真を、写真のタグにしたがって格子状に配置しています。この配置アルゴリズムについて簡単に説明したいと思います。 基的なアイデア まず、入力となるのはN個のタグ付きデータとします。また、K種類のタグがあるとします。 TagGridでは、このN個のデータとK種類のタグがそれぞれ平面上に配置されるとします。 データだけでなく、タグも2次元平面上に配置するのが大事な点です。 基的な考え方としては、あるデータのタグが例えばseaとsunの場合、このデータの位置がseaタグと sunタグの近くになるようにデータとタグを配置します。データは複数のタグを持つので、一番良い配置方法というのは簡単には決定できません。そこで、なるだけ良さそうな配置を求めてみます。 フォーマルな問題定義 基的なアイデアを、もう少しフォーマルに定義します。 n番目のデー

  • ウノウラボ Unoh Labs: 圧縮アルゴリズム

    尾藤正人(a.k.a BTO)です コンピュータを使ってる方ならいつもお世話になってるデータ圧縮。 gzipのようなツールで意識して圧縮していることもあれば、フォーマット自体に圧縮機能が備わっていて、意識しないで使っているケースもあるかと思います。 毎日のようにお世話になってるデータ圧縮ですが、その原理を知らない方も多いのではないでしょうか。 かくいう僕自身も、つい最近までは全く知りませんでした。 そこで、先日の社内勉強会で圧縮アルゴリズムについて一通りやってみました。 その資料を公開します。 僕も専門家ほど詳しいわけでもなく、単に勉強してみただけのくちなので、いろいろおかしな点もあるかもしれません。 何かありましたら、いろいろご指摘いただければと思います。 プレゼン資料の作成にはデータ圧縮法概説を大いに参考させていただきました。 参考っていうか、ほとんどそのまんまです。 ぶっちゃけデータ

  • GC - GCアルゴリズム詳細解説 - livedoor Wiki(ウィキ)

    GC¥¢¥ë¥´¥ê¥º¥à¾ÜºÙ²òÀâ ÆüËܸì¤Î»ñÎÁ¤¬¤¹¤¯¤Ê¤¤GC¥¢¥ë¥´¥ê¥º¥à¤Ë¤Ä¤¤¤Æ¾ÜºÙ¤Ë²òÀ⤷¤Þ¤¹ ¥È¥Ã¥×¥Ú¡¼¥¸¥Ú¡¼¥¸°ìÍ÷¥á¥ó¥Ð¡¼ÊÔ½¸ GC ºÇ½ª¹¹¿·¡§ author_nari 2010ǯ03·î14Æü(Æü) 20:47:11ÍúÎò Tweet ¤³¤ÎWiki¤¬Ìܻؤ¹½ê GC¤È¤Ï¡© GC¤ò³Ø¤ÖÁ°¤ËÃΤäƤª¤¯»ö ¼Â¹Ô»þ¥á¥â¥ê¹½Â¤ ´ðËÜ¥¢¥ë¥´¥ê¥º¥àÊÔ Reference Counter Mark&Sweep Copying ±þÍÑ¥¢¥ë¥´¥ê¥º¥àÊÔ IncrementalGC À¤ÂåÊÌGC ¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È·¿GC LazySweep TwoFinger Lisp2 Pa

    GC - GCアルゴリズム詳細解説 - livedoor Wiki(ウィキ)
  • http://hawaii.naist.jp/~shige-o/cgi-bin/wiki/wiki.cgi?%C6%FE%CC%E7%BC%D4%B8%FE%A4%B1%B2%F2%C0%E2

  • 数論で学ぶアルゴリズム(仮) - フィボナッチ数列

    Common Lisp 再帰 by pgf2 > (defun fib(n) (cond ((= n 0) 0) ((= n 1) 1) (t (+ (fib (- n 1)) (fib (- n 2)))))) 繰り返し by pgf2 > (defun fib(n) (cond ((= n 0) 0) ((= n 1) 1) (t (let ((result 0) (x 0) (y 1)) (dotimes (i (- n 1) result) (setq result (+ x y)) (setq x y) (setq y result)))))) 一般項 by pgf2 > (defun fib(n) (truncate (* (/ 1 (sqrt 5)) (- (expt (/ (+ 1 (sqrt 5)) 2) n) (expt (/ (- 1 (sqrt 5)) 2) n))

  • アルゴリズム百選 - ユークリッドの互除法 : 404 Blog Not Found

    2007年12月11日16:30 カテゴリアルゴリズム百選Math アルゴリズム百選 - ユークリッドの互除法 今回は、ユークリッドの互除法を取り上げます。 ユークリッドの互除法とは何か。小学校の時に実は習っているはずですが、忘れている方は思い出してみてください。最大公約数(Greatest Common Divisor)を確実に計算する方法です。古代から有名なこのアルゴリズムは、かつては"The Algorithm"といえばこれをさすほど有名なアルゴリズムです。 それは、コードではなく普通の言葉でも簡単に書くことが出来ます。gcd(m, n)を出すには、 mをnで割り、余りがrだとする 余りrが0なら、nがGCD。 そうでなければ、nとrのGCDを求める 互い違いに割っていくので、互除法というわけです。 function gcd(m, n){ if (m < n) return gcd(

    アルゴリズム百選 - ユークリッドの互除法 : 404 Blog Not Found
  • 404 Blog Not Found:アルゴリズム百選 - ハッシュを再発明する

    2007年12月03日11:15 カテゴリアルゴリズム百選 アルゴリズム百選 - ハッシュを再発明する (実はハッシュを使って)配列を再発明したところで、今度は配列を使ってハッシュを再発明してみます。 現代におけるプログラミングでは、連想配列(associative array)というものを非常によく使います。通常の配列では、データを取り出すのに整数の番号を使いますが、連想配列ではその代わりに文字列を使います。これは非常に便利で、多くの言語ではオブジェクトの実装にこの連想配列を用いています。JavaScriptのオブジェクトも実は連想配列です。 しかし、これを実装するには、少し工夫が必要です。単なる配列であれば、ただ等間隔に並べておけば、「何番目を出してくれ」で事足りますが、連想配列で「'dankogai'番目」といっても人間にもコンピューターにもなんのことかさっぱりわかりません。 誰でも

    404 Blog Not Found:アルゴリズム百選 - ハッシュを再発明する
    hamasta
    hamasta 2007/12/04
    あとで読む
  • Sorting Algorithms Demo

    This page is based upon http://www.cs.ubc.ca/spider/harrison/Java/sorting-demo.html. Modified by Guido Bunsen. Sorting Algorithms We all know that Quicksort is one of the fastest algorithms for sorting. It's not often, however, that we get a chance to see exactly how fast Quicksort really is. The following applets chart the progress of several common sorting algorthms while sorting an array of dat

  • ゲーマーでなくても仕組みぐらいは知っておきたいアルゴリズムx40

    高校生の時、数学の先生がこう言いました。 ゲームなんて、開発者が作ったルールの上で遊ばれるだけだ。 と。 その時、ゲーマーな自分はこう思いました。 ゲーマーは、開発者が作ったルールの上で遊ばれたい。 と。 というわけで、普段何気なくプレイしているゲームには、どのようなルール(アルゴリズム)があるのか。それを知るために、いろいろなゲームのアルゴリズムなどを解析しているページへのリンク集を作りました。 ほとんどのゲームのアルゴリズムは正式に発表されていないので、ユーザーの手による逆解析だったり、大学の研究による真面目な考察だったりします。(リンク先には、一部アルゴリズムと呼べないものも含まれています) 各種ゲームのプログラム解析 ドラクエ、FF、ロマサガのプログラム解析 DQ調査報告書(リンク切れ) ドラクエの物理ダメージ計算式は質的にどれも同じだが、細かい部分で微妙に違う RPG INST

    ゲーマーでなくても仕組みぐらいは知っておきたいアルゴリズムx40
    hamasta
    hamasta 2007/11/27
    人生はゲームであり、空なのです。というお話。
  • 404 Blog Not Found:プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10

    2007年11月26日18:15 カテゴリMathLightweight Languages プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10 ぎくっ あなたが一番好きなアルゴリズムを教えてください。 また、その理由やどんな点が好きなのかも教えてください。 - 人力検索はてな なぜぎくってしているかというと、実はすでにアルゴリズムの発注を受けているからなのだ。いつまでも伏せておくのもなんなので、ここにえいやっとdiscloseしてしまうことにする。 アルゴリズム大募集! C&R研究所 - トップページ その下書きもかねて、そこでも紹介しないわけに行かないメジャーなアルゴリズムをとりあえず10個紹介しておくことにする。 ユークリッドの互除法(Euclidean algorithm) その昔(数百年ほど前)は「アルゴリズム」といえば、「手順一般」を指すのではなく、この「互除法

    404 Blog Not Found:プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10
    hamasta
    hamasta 2007/11/26
    えーっと、各言語での実装は、、、 どう書くorgあたりにあるのかな?
  • 文書比較(diff)アルゴリズム

    文書比較(diff)アルゴリズム 前のドキュメント 次のドキュメント ViViの文書比較(diff)機能で使用しているアルゴリズムについて解説する。 これらのアルゴリズムは Myers 氏らの論文によるもので、氏は筆者のためにわざわざ論文をWebサイトで入手可能な形式にしてくださった。この場を借りてお礼申し上げる。 オリジナル論文は以下のWebサイトから入手可能である。 http://www.cs.arizona.edu/people/gene [1] E.W.Myers, "An O(ND) Difference Algorithm and Its Variations", Algorithmica, 1 (1986), pp.251-266 [2] S. Wu, U. Manber, G. Myers and W. Miller, "An O(NP) Sequence Comparis

  • あなたが一番好きなアルゴリズムを教えてください。 また、その理由やどんな点が好きなのかも教えてください。 - 人力検索はてな

    あなたが一番好きなアルゴリズムを教えてください。 また、その理由やどんな点が好きなのかも教えてください。

    hamasta
    hamasta 2007/11/26
    あとで読む
  • M.Hiroi's Home Page / Lightweight Language

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    hamasta
    hamasta 2007/11/15
    日本語 沢山の記事 おすすめ
  • C言語による輪郭追跡処理について

    ここでは、私、酒井理雄(TSUGU)が卒業研究において作成した DIB画像の輪郭追跡プログラムのアルゴリズムについて解説をしたいと思います。 ご意見やご感想、また、ここおかしいんじゃない?というような所があれば連絡していただけると作者が喜びます。 最初にこのドキュメント中の画像の見方について説明します。 下のような画像が多数出てきますが、その色は次のような意図で塗られています。

  • http://blog.so-net.ne.jp/shi3z/2007-11-02

    hamasta
    hamasta 2007/11/02
    こんな本が
  • アルゴリズム入門

    アルゴリズム入門はアルゴリズムを独学したい人のページです。アルゴリズムってなに?という人からフローチャートの書き方、ソートなどの一般的なアルゴリズムを解説しています。練習問題なども収録しています。

    hamasta
    hamasta 2007/07/23
    練習問題あり
  • STL Algorithm 詳解

    STLのページに戻る STL Algorithm 詳解 Index 今のところリファレンスに毛が生えた程度ですが。 ところどころ(1/4くらい)例が抜けていたりします(あまり面白い例が思いつかなくて)。 '99 9/26 集合、最大・最小、順列、コピー追加。これでとりあえずalgorithmは全部。あとは例や相互参照リンクを付け加えていくだけ。 2000年10月16日 いろいろと修正 目次 検索を行うアルゴリズム 検索アルゴリズム一覧 ある値を持つ要素を検索する。- find() 条件を満たす要素を検索する。- find_if() 同じ値が連続している箇所を探す。- adjacent_find() ある複数の要素いずれかと一致する要素を検索する。- find_first_of() ある複数の要素いずれかに対して条件を満たす要素を検索する。- find_first_of() 一番最後に見

  • 画像圧縮アルゴリズム (9) ウェーブレット変換 -2-

    前章で、多重解像度解析の内容についてHaarの関数を使って説明しましたが、今回はこれを一般化したDaubechiesによるウェーブレット関数を紹介したいと思います。Haarの関数は不連続となることから、自然画の圧縮には適さないと言われています。Daubechiesの関数ではこの不連続が解消されており、Haarの関数よりも自然画の処理に適しているそうです。 前にも述べたように、ウェーブレット変換を行ってもデータ量は変化しません。JPEGの場合と同じく、変換後には量子化と符号化を行う必要があります。この章では、量子化の方法についても説明をしたいと思います。 1) ツースケール関係(two-scale relation) Haarのスケーリング関数を使った多重解像度解析処理では、二つの矩形を平均化して一つの矩形にすることで、解像度を一つ落とす(レベルを一つあげる)処理を行っていました。この時の