タグ

algorithmとprogrammingに関するprajnaのブックマーク (13)

  • ビタビアルゴリズム

    ビタビ・アルゴリズム Viterbi algorithm ホーム 情報通信のハイパーテキストは下記へ移動しました。 http://www.mnc.toho-u.ac.jp/v-lab/ お探しの内容は、下記の目次にあります。 http://www.mnc.toho-u.ac.jp/v-lab/yobology/index.htm

  • オーダーを極める思考法

    プログラムの実行に掛かる時間を把握しておくのは、プログラミングを行う上で基的な注意点です。今回は、計算量のオーダーについて学びながら、TopCoderのMedium問題を考えてみましょう。 プログラムの実行時間 業務としてプログラミングをされている方には釈迦に説法かもしれませんが、プログラムの実行に掛かる時間を把握しておくのは、プログラミングを行う上で基的な注意点です。そしてこれは、TopCoderなどのコンテストでプログラムを組む際にもよく当てはまります。通常、こうしたことは感覚的に理解している方がほとんどだと思いますが、具体的にどれくらいのループを回すと何秒掛かる、といった基準を持っている人は少ないのではないでしょうか? 非常に基的なことですが、プログラムの実行時間に関して再確認しておきたいと思います。 TopCoderの制限に関して TopCoderでは、実行時間およびメモリ使

    オーダーを極める思考法
  • コンピュータサイエンスはこう学べ (1) - 将来が不安

    突然の出会い: プラウベルマキナについて 日がバブル経済に突き進み始めた頃に3,500台ほど作られ、数年後にひっそり生産が閉じられた超短命製品プラウベルマキナW67とご縁があった。 その生産数の少なさからまともな個体と出会うことがなかったのだけど、使わないデジタル機材一式を売りに行った帰りにガラス…

    コンピュータサイエンスはこう学べ (1) - 将来が不安
  • Yaneu Labs --- コンピュータ将棋プログラムをLISPで書く

    *[hatefu:labs.yaneu.com/20090905/] コンピュータ将棋プログラムをLISPで書く 「コンピュータ将棋プログラムをLISPで書く」と言うとコンピュータ将棋開発関係者にすら完全にネタかと思われているのが実状ではあるが、私はこれを機にその誤解を解いておきたい。 ここでは、私がC#で書いたLISPエンジンのソースを公開し、これが実際にコンピュータ将棋プログラムの開発において非常に有効であることを示す。 * YaneLisp version 1.10 今回の記事はあまりに長文なので最後まで読む前に眠くなる人のために、まず始めに私が実装したLISPのバイナリとソースを配布しておく。ライセンスはNYSLとする。 勢いに任せて実装したので、かなり雑な作りだが、必要ならばC#側で関数を追加するなりすればいいと思う。このLISPの製作に要した時間は丸2日ぐらい。 # YaneL

  • OpenGLの基礎

    OpenGLは,3次元グラフィクスプログラミングにつかわれる標準的なライブラリです. ライブラリとは,プログラムの部品セットであるといえます. ライブラリを利用することで,自分で0から書かなくても, ライブラリが提供する部品を組み合わせることでプログラムを作成することができます. ここでは,OpenGLの基礎を説明します. OpenGLの概要 Ruby/OpenGL OpenGLプログラムの基的な構造 イベント,コールバック,イベントループ 2次元図形の描画 図形プリミティブ 属性 2次元ビューの設定 ビューポート OpenGLの概要 OpenGLは,3次元グラフィクスプログラミングにつかわれる標準的なライブラリで,SGI(Silicon Graphics, Inc.)がGLという同社のコンピュータ専用のグラフィクスライブラリをもとに開発したものです. OpenGL以外でよく用いられる3

  • Burrows Wheeler Transform と Suffix Array - naoyaのはてなダイアリー

    ,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ|          あ…ありのまま 今日 起こった事を話すぜ! |i i|    }! }} //| |l、{   j} /,,ィ//|       『BWT について調べていたら Suffix Array のライブラリができていた』 i|:!ヾ、_ノ/ u {:}//ヘ |リ u' }  ,ノ _,!V,ハ | /´fト、_{ル{,ィ'eラ , タ人        な… 何を言ってるのか わからねーと思うが /'   ヾ|宀| {´,)⌒`/ |<ヽトiゝ        おれも何をされたのかわからなかった… ,゙  / )ヽ iLレ  u' | | ヾlトハ〉 |/_/  ハ !ニ⊇ '/:}  V:::::ヽ        頭がどうにかなりそうだった… // 二二二7'T'' /u' __ /:::::::/`ヽ /'

    Burrows Wheeler Transform と Suffix Array - naoyaのはてなダイアリー
  • ネットワークプログラムのI/O戦略 - sdyuki-devel

    図解求む。 以下「プロトコル処理」と「メッセージ処理」を分けて扱っているが、この差が顕著に出るのは全文検索エンジンや非同期ジョブサーバーなど、小さなメッセージで重い処理をするタイプ。ストリーム指向のプロトコルの場合は「プロトコル処理」を「ストリーム処理」に置き換えるといいかもしれない。 シングルスレッド・イベント駆動 コネクションN:スレッド1。epoll/kqueue/select を1つ使ってイベントループを作る。 マルチコアCPUでスケールしないので、サーバーでは今時このモデルは流行らない。 クライアントで非同期なメッセージングをやりたい場合はこのモデルを使える: サーバーにメッセージを送信 イベントハンドラを登録;このときイベントハンドラのポインタを取っておく イベントハンドラ->フラグ がONになるまでイベントループを回す イベントハンドラ->結果 を返す 1コネクション1スレッ

    ネットワークプログラムのI/O戦略 - sdyuki-devel
  • ホワット・ア・ワンダフル・ワールド 項書き換えシステム,ナローイング,Residuation

  • More C++ Idioms - Wikibooks

    C++ はあまりに『熟練者に優しく』なってしまった」(C++ has indeed become too "expert friendly") Stroustrup 氏の言は真実である。なぜなら熟練者は言語のイディオムに深く精通しているからである。プログラマが理解するイディオムの増加に従って、言語は彼あるいは彼女にとってよりフレンドリーになる。この open content book の目的はほどほどに C++ に精通しているプログラマに対して現代的な C++ のイディオムを提示し、C++ をよりずっとフレンドリーに感じるレベルにまで知識を引き上げる助けと成る事である。書は熟練した C++ プログラマが C++ を使ってプログラミングや設計を行う際に用いる事の多い再利用可能なイディオムの網羅的なカタログと成るよう意図されている。これは、それらのテクニックや語彙をひとまとめにしようという

  • 新はてなブックマークでも使われてるComplement Naive Bayesを解説するよ - 射撃しつつ前転 改

    新はてブ正式リリース記念ということで。もうリリースから何週間も経っちゃったけど。 新はてなブックマークではブックマークエントリをカテゴリへと自動で分類しているが、このカテゴリ分類に使われているアルゴリズムはComplement Naive Bayesらしい。今日はこのアルゴリズムについて紹介してみる。 Complement Naive Bayesは2003年のICMLでJ. Rennieらが提案した手法である。ICMLというのは、機械学習に関する(たぶん)最難関の学会で、採択率はここ数年は30%を切っている。2003は119/371で、32.1%の採択率だったようだ。 Complement Naive Bayesの位置づけは 実装が簡単 学習時間が短い 性能もそこそこよい という感じで、2003年段階にあっても、絶対的な性能ではSVMに負けていた。しかし、学習が早いというのは実アプリケーシ

    新はてなブックマークでも使われてるComplement Naive Bayesを解説するよ - 射撃しつつ前転 改
  • 抽象データ型 - Wikipedia

    出典は列挙するだけでなく、脚注などを用いてどの記述の情報源であるかを明記してください。 記事の信頼性向上にご協力をお願いいたします。(2022年5月) 抽象データ型(ちゅうしょうデータがた、英: abstract data type、ADT)とは、データ構造とその操作手続きを定義したデータ型、またはデータ抽象[注釈 1]の方法の1つ。通常のデータ型であれば変数宣言で変数に束縛されるものは値であるが、抽象データ型の世界において値に相当するものはデータ構造とその操作[注釈 2]のまとまり[注釈 3]である。 抽象データ型を用いない場合、データ構造またはデータの操作手続きのアルゴリズムの変更を行うとソースコード中にその変更部分が散在してしまい規模によっては修正困難となるが、データとその操作がひとまとめに記載されることになる抽象データ型においては、型の定義における実装部分を変更するだけで修正が完了

  • 「実現したいことを計算機の問題に置き換えることが『技術力』」、伊藤CTOが“はてな流”大規模データ処理の極意を語る:CodeZine

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    「実現したいことを計算機の問題に置き換えることが『技術力』」、伊藤CTOが“はてな流”大規模データ処理の極意を語る:CodeZine
  • プログラマーに最適なデータマイニングの教科書 『集合知プログラミング』 - 図書館情報学を学ぶ

    集合知プログラミング 作者: Toby Segaran,當山仁健,鴨澤眞夫出版社/メーカー: オライリージャパン発売日: 2008/07/25メディア: 大型購入: 91人 クリック: 2,220回この商品を含むブログ (277件) を見る当初はサンプルコードがPythonということで購入した書ですが、読んでみると内容の素晴らしさに驚嘆しました。私が今までに読んだオライリーシリーズでも屈指の名作だと思います。 『集合知プログラミング』とは 『集合知プログラミング』は、Amazonの協調フィルタリングのように、ウェブ上のデータを収集してユーザーの嗜好にあったコンテンツを推薦したり、大量のデータを分かりやすく分類・可視化するプログラムを簡単に実装する技術を解説した書籍です。Webプログラミングをかじったことのある方でしたら、だれしもAmazonのような推薦サービスを作ってみたいと思ったこと

    プログラマーに最適なデータマイニングの教科書 『集合知プログラミング』 - 図書館情報学を学ぶ
  • 1