タグ

アルゴリズムに関するjitsu102のブックマーク (9)

  • 新人SEのための楽しく学ぶアルゴリズム---目次

    Visual Basicに代表される開発ツールの普及により,あらかじめ用意されたソフト部品を組み合わせれば,それなりのプログラムは作れるようになってきた。でも,それだけで大丈夫だろうか? もしあなたがSEやプログラマを目指すなら,どんなにツールの使い方を極めても,きっと不安が残るはずだ。不安を取り除くために,プログラミングの中核となるアルゴリズムを楽しく学習していこう。 第1回 アルゴリズムとは?(1) 第1回 アルゴリズムとは?(2) 第1回 アルゴリズムとは?(3) 第1回 アルゴリズムとは?(4) 第1回 アルゴリズムとは?(5) 第2回 データ構造(1) 第2回 データ構造(2) 第2回 データ構造(3) 第2回 データ構造(4) 第2回 データ構造(5) 第3回 シミュレーションと再帰(1) 第3回 シミュレーションと再帰(2) 第3回 シミュレーションと再帰(3) 第3回 シミ

    新人SEのための楽しく学ぶアルゴリズム---目次
  • 第6回 上手なアルゴリズムの見つけ方

    図1に示すHTML形式のテキスト・データ(以下,HTMLデータ)があります。このHTMLデータをブラウザに表示させたときに「表示される文字列」と「その文字列に対して有効なタグ名」を対応付けるアルゴリズムを考えてください。結果は配列に格納して,画面に表示させるものとします(図2)。 見わたせば,世の中はアルゴリズムだらけです。私のようなプログラマは,日常生活でも「締め切り順に仕事をソートしてごらん」「仕事のスタックがたまっているからてんてこまい」など,いま置かれている状態をアルゴリズムやデータ構造になぞらえて会話することがよくあります。前回紹介した再帰処理と言えば,落語の演目の一つ,「頭山」です。自分の頭に生えた桜の木を引っこ抜いて,その跡にできた池に自分自身が身を投げる,という不思議な話ですが,これこそ再帰処理をよく言い表していると思います。 このように世の中には,ハッシュだってスタックだ

    第6回 上手なアルゴリズムの見つけ方
  • 定番アルゴリズムを徹底理解! - 今からでも遅くない!アルゴリズム入門:selfup

    このパートでは,プログラミングを勉強するうえで欠かせないアルゴリズムの中でも定番中の定番を紹介します。ソート(並べ替え)やサーチ(検索)などの機能は今では標準のライブラリとして提供されています。実用的なプログラムを作るときにそのものずばりをいちいち書く機会は少ないかもしれません。しかし定番のアルゴリズムは,様々に形を変えて普段のプログラミングに登場します。 解説を読んで仕組みがわかったら,ぜひそれをプログラムにしてみてください。読んだだけではプログラムを書けるようにはなりませんし,プログラムを書いてみて初めて,実は十分に理解できていなかったと気付くことがよくあります。しかもアルゴリズムは特定のプログラミング言語に依存しないので,一度身に付ければ,後でどんな言語を学ぶ場合でも役に立ちます。 1番目から6番目まではソートのアルゴリズム,7番目から9番目まではサーチのアルゴリズムです。一つひとつ

    定番アルゴリズムを徹底理解! - 今からでも遅くない!アルゴリズム入門:selfup
  • 再帰的アルゴリズム

    このようにして3!が計算されます。 このような定義の仕方を再帰的定義と言います。 この階乗関数を Basic プログラムとして実現してみると,(Tiny Basic には階乗関数 Factorial が内蔵されていますから,実際にこのようなプログラムを書く必要はありませんが。) Function Kaijyou(n) If n = 0 then Kaijyou = 1 Else Kaijyou = Kaijyou(n-1)*n End if End Function となります。しかし,実は階乗関数は,再帰を使わなくても,次のように実現することが出来ます。 Function Kaijyou(n) F = 1 For i = 1 to n F = F * i Next i Kaijyou = F End Function このように再帰的プログ

  • プログラムを2倍から4倍早くする方法 - GIGAZINE

    プログラミングの話なので、ソフトウェアを使うだけのユーザーには関係ない話です。 要するに実行速度の遅いプログラムを2倍から4倍高速化させるには非常に基的なトリックというか技術を使えば可能ですよ、というお話。 アルゴリズムの考え方なので、仕事上どうしてもプログラムの実行速度を上昇させる必要があるが、やり方がイマイチよく分からないという人は必見。 Dr. Dobb's | An Algorithm for Compressing Space and Time | 3 1, 2006 かの有名な「ライフゲーム」を例に出し、プログラミングのコードの内容を高速化するにはどういうアプローチを取ればいいのか、その際に使用する再帰的アルゴリズムの考え方、複雑な式を簡単な式に圧縮する方法、圧縮することで実行時間の節約が可能になること、などをやたら詳細に解説しています。 ぶっちゃけ、これが理解できるのであれ

    プログラムを2倍から4倍早くする方法 - GIGAZINE
  • これだけは知っておきたいアルゴリズム〜ハッシュ関数・公開鍵暗号・デジタル署名編 ― @IT

    これだけは知っておきたいアルゴリズム ~ハッシュ関数・公開鍵暗号・デジタル署名編:デファクトスタンダード暗号技術の大移行(4)(1/3 ページ) 前回の共通鍵暗号の紹介に引き続き、安全性・処理性能ともに優れていると国際的に認められ、米国政府標準暗号、欧州のNESSIEや日のCRYPTREC(Cryptography Research & Evaluation Committees)での推奨暗号、ISO/IEC国際標準暗号、インターネット標準暗号などで共通して選定されているハッシュ関数・公開鍵暗号・デジタル署名について紹介する。 共通鍵暗号ではアルゴリズムそのものを代替わりさせることによって、より安全でより高速なものへと移行することが可能である。これに対して、ハッシュ関数、公開鍵暗号、デジタル署名ともに、アルゴリズムそのものを代替わりさせるというよりも、基的にはほぼ同じ構成のままハッシュ

    これだけは知っておきたいアルゴリズム〜ハッシュ関数・公開鍵暗号・デジタル署名編 ― @IT
  • これだけは知っておきたいアルゴリズム〜共通鍵暗号編 ― @IT

    実際に運用中の情報システムで利用されている暗号アルゴリズムを移行することは、大規模なシステムであるほど、大変な労力とコストが必要となる。従って、規模が大きく、また長期運用が前提となっているシステムほど、暗号の選定には慎重になるべきである。 その意味で、「システム性能要求上問題がない範囲内であれば、現時点における最も高い安全性が確認されている暗号の中から選択するのが望ましい」というところに、暗号技術の2010年問題【注】の質がある。いい換えれば、現在のデファクトスタンダードだからとの理由だけでその暗号を採用することは必ずしも勧められない。 【注:暗号技術の2010年問題とは】 米国は、現在利用されているすべての米国政府標準の暗号技術を2010年までにより安全な暗号技術へ交代させていく方針を明確に打ち出している。現在、世界中で使われているデファクトスタンダードの暗号技術は、そのほとんどすべて

    これだけは知っておきたいアルゴリズム〜共通鍵暗号編 ― @IT
  • Google、新しい検索アルゴリズム「Orion」を購入

    マイクロソフトとYahoo!もこの「Orion」を巡って買収交渉をしていたようです。この新しく発明された検索アルゴリズムはオーストラリアのニューサウスウェールズ大学にあるコンピュータサイエンスのドクターコースに在籍中のイスラエル人大学生、Ori Alonが作ったもの。Googleも大学側も人もコメントを拒否しているものの、Ori AlonがカリフォルニアにあるGoogleで働くことになると言うことは認めているとのこと。 この新検索アルゴリズムの詳細は不明ですが、例えば「アメリカ独立戦争」というフレーズで検索すると、このフレーズに関連づけられた他のフレーズがリストアップされるという機能らしい。 UNSW: The University of New South Wales - Sydney Australia - News - New search engine 'revolutionar

    Google、新しい検索アルゴリズム「Orion」を購入
  • 初代Googleのアルゴリズム解説 - GIGAZINE

    いまやネットの世界を左右する強力な検索エンジンとなったGoogle。日ではまだYahoo!の方がはるかに利用者が多いのでさほどではないですが、アルゴリズムの基的な考えが似ているため、同じような結果が出てきます。つまり、既存の検索エンジンのその基礎となった一番最初のGoogleの検索アルゴリズムを理解すれば、検索エンジン対策にも役立つはず。 ということで、初代Googleのアルゴリズムをできるだけわかりやすく解説してみます。既存の他サイトの解説とは違い、きちんとした最初のGoogleの数式に基づいています。 詳細は以下から。The Anatomy of a Search Engine http://www-db.stanford.edu/~backrub/google.html Googleの画期的なランク付けの方法が数式による全自動のページランクというのは聞いたことがあると思いますが、

    初代Googleのアルゴリズム解説 - GIGAZINE
  • 1