タグ

algorithmに関するtakuya-itohのブックマーク (10)

  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
  • 高層ビルのエレベーターホールには、なぜ階数表示がないのか - 本当は怖いHPC

    以前に高橋幸雄先生の授業で聞いて非常に面白いと思ったこと。 オフィスビルとかホテルとか、エレベーターが何基も設置されているビルの場合、エレベーターホールに階数表示が無いことが多い。エレベーターホールで画像検索してみればわかると思う。 これはなぜだろうか。 その理由は、「客がいても、その階を通過することができるようにするため」だ。 基的に、多数のエレベーターを効率よく動かすのは難しい。工夫された高度なアルゴリズムが使われていることが多い。目標は「客の平均待ち時間を短くする」ことだ。ある階でボタンが押された場合、どのエレベーターがその客を迎えに行くか、という判断が平均待ち時間に大きな影響を与える。難しいアルゴリズムの中で、この点がもっとも重要なところだ。 高層ビルの場合、エレベーターはかなりの速度で走っている。既に客を乗せて走っているエレベーターが他の客を乗せるために停止すると、減速→停止→

    高層ビルのエレベーターホールには、なぜ階数表示がないのか - 本当は怖いHPC
  • Googleのリンクアルゴリズムの最前線 - SEO Japan|アイオイクスのSEO・CV改善・Webサイト集客情報ブログ

    Googleがウェブページのリンクをどのように理解しているか、というアルゴリズムは古くからSEOマニアが注目する技術でした。ページランクに始まりリンクのアンカーテキスト、発リンク数、リンク先との関連性、そしてリンクの位置や張られ方、前後の文章との関係性などページ&サイト単位等、リンク構築の際に考慮すべきSEOに影響を与える様々な要素が存在しますが、今回は最新のGoogleはさらにその一歩も二歩先も進んだリンク解析アルゴリズムを採用しているという興味深いお話をSEO by the Seaから。 — SEO Japan 検索エンジンがリンクをインデックスする場合、通常は、検索エンジンのインデックスには、リンクが向けられているターゲットのアドレス、リンク内に表示されるアンカーテキスト、そして、場合によってはリンクの近くにあるテキストに関する情報が含まれる。グーグルのリーゾナブルサーファーモデル(

    Googleのリンクアルゴリズムの最前線 - SEO Japan|アイオイクスのSEO・CV改善・Webサイト集客情報ブログ
  • Algorithms

    Algorithms are the heart of computer science, and the subject has countless practical applications as well as intellectual depth. This specialization is an introduction to algorithms for learners with at least a little programming experience. The specialization is rigorous but emphasizes the big picture and conceptual understanding over low-level implementation and mathematical details. After comp

    Algorithms
  • algorithm - bucket sort - 比較しなければソートは相当速い : 404 Blog Not Found

    2012年01月11日07:00 カテゴリアルゴリズム百選Math algorithm - bucket sort - 比較しなければソートは相当速い 珠玉のプログラミング Jon Bentley / 小林健一郎訳 絶賛風邪こじらせ中につきコードと戯れることに。 新ソートアルゴリズム「配列挿入ソート」だ! - hp12c その名も「配列挿入ソート」! すでに突っ込み入ってるけど、それ、もしかしたら人類最古のアルゴリズムだから。 最古にして最速? おそらくプログラムを組んだことがない人でも「誰にも教えられずに」知った「天然の」アルゴリズムの筆頭に来るのがこのバケットソートではないでしょうか。 ソートしたいものに適当に番号を振っておく 番号がついたバケツを用意する ソートしたいものの番号がついたバケツにそれを放り込む 必要があればバケツの中身を同じやり方でソートする 番号順にバケツの中身をぶち

    algorithm - bucket sort - 比較しなければソートは相当速い : 404 Blog Not Found
  • アルゴリズムに始まり,アルゴリズムに終わる - カレーなる辛口Javaな加齢日記

    「アルゴリズムの勉強のしかた」http://nowokay.hatenablog.com/entry/20110922/1316676007 これを見て強烈な違和感を覚えたので,自分の意見も書いておくことにする.*1 アルゴリズムはとても重要だ.これは間違いない.プログラミングを志す者ならば,必ず学んでおかなければならない基礎知識の一つだ.DBJavaを使ってるのに「ハッシュも平衡木もB木も知りません」なんて開発者がいるのは,日IT業界の恥だと思ってる. プログラマが知るべき97のこと 作者: 和田卓人,Kevlin Henney,夏目大出版社/メーカー: オライリージャパン発売日: 2010/12/18メディア: 単行(ソフトカバー)購入: 58人 クリック: 2,107回この商品を含むブログ (350件) を見る89. Use the Right Algorithm and Da

    アルゴリズムに始まり,アルゴリズムに終わる - カレーなる辛口Javaな加齢日記
  • Bloom filter - Wikipedia

    In computing, a Bloom filter is a space-efficient probabilistic data structure, conceived by Burton Howard Bloom in 1970, that is used to test whether an element is a member of a set. False positive matches are possible, but false negatives are not – in other words, a query returns either "possibly in set" or "definitely not in set". Elements can be added to the set, but not removed (though this c

    Bloom filter - Wikipedia
  • http://www.isis.ne.jp/mnn/senya/senya1269.html

  • 停止性問題 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "停止性問題" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2018年1月) 計算可能性理論において停止性問題(ていしせいもんだい、英: halting problem)または停止問題は、「どんなチューリングマシン[注 1]、あるいは同様な計算機構についても、それが有限時間で停止するかを判定できるアルゴリズム」は可能か、という問題。 アラン・チューリングは1936年、停止性問題を解くアルゴリズムは存在しないことをある種の対角線論法のようにして証明した。 すなわち、そのようなアルゴリズムを実行できるチューリングマシンの存在を仮定すると「

  • 秋元@サイボウズラボ・プログラマー・ブログ: 各ソート技法をアニメーションで表示するAnimated Sorting Algorithm Demo

    ソートアルゴリズムのアニメーションデモでは、様々なソート手法(挿入、選択、バブル、シェル、マージ、ヒープ、クイック、三分割クイック)について、ソート対象のデータが完全ランダムの場合、ほぼソートされている状態、逆順にソートされている場合、同じ値のものが多数ある場合のデータをソートする様子を、Javascriptを使ったアニメーションで見せてくれる。 それぞれのソートアルゴリズムがどのようなものか見せるというだけでなく、ソートのアルゴリズムに「常にこれが最適」というものはない、というのを示すのも目的、ということだ。 各アルゴリズムのリンクからは、そのアルゴリズムのコード、特徴や計算量が解説されたページに飛ぶ。 このようなソートアルゴリズムの可視化というテーマ、Javaベースではこういうのやこういうの、こういうのも過去にあった。 via del.icio.us/popular

    秋元@サイボウズラボ・プログラマー・ブログ: 各ソート技法をアニメーションで表示するAnimated Sorting Algorithm Demo
  • 1