タグ

algorithmとprogrammingに関するkchaのブックマーク (36)

  • Introduction To TopCoder, 今日からはじめるTopCoder - フリーフォーム フリークアウト

    移転しました http://please-sleep.cou929.nu/20091005.html

    Introduction To TopCoder, 今日からはじめるTopCoder - フリーフォーム フリークアウト
  • Google Developers: データ圧縮アルゴリズムの基礎 - ワザノバ | wazanova

    「webサイトの平均サイズが2メガに近づき、Androidゲームが125メガになってきて、コンテンツと送信コストのトレードオフが深刻な問題になってきている。開発者にとって次の10年は、圧縮アルゴリズムを理解して、うまく使いこなすことが重要になる。」という紹介文に惹かれて、3回 (20分/10分/20分) のビデオシリーズを見ました。概要は下記の通りですが、図示が中心でわかりやすく説明してくれてますので、是非チェックしてみてください。(3回目の後半はちょっと素人には難解でした。。) Episode 1: Variable Length Codes モールス信号からバイナリコードに進化してきたが、共通しているのは、出現率の高い文字から順番に短い記号列 ("."もしくは"-") /数列 ("0"もしくは"1") をあてはめることで、記号列/数列全体の平均の長さを短くしようとする考え方。 この場合

  • Ryan Marcus · UPenn

    Ryan Marcus, assistant professor at the University of Pennsylvania. Using machine learning to build the next generation of data systems. ____ __ ___ / __ \__ ______ _____ / |/ /___ _____________ _______ / /_/ / / / / __ `/ __ \ / /|_/ / __ `/ ___/ ___/ / / / ___/ / _, _/ /_/ / /_/ / / / / / / / / /_/ / / / /__/ /_/ (__ ) /_/ |_|\__, /\__,_/_/ /_/ /_/ /_/\__,_/_/ \___/\__,_/____/ /____/ ___ __ ___

  • ゲームつくろー!

    ゲームをする側から作る側へ。 どうせ作るなら気で行こう。 「ゲームつくろー」のコンセプトは「目指せ大規模ゲーム」 そして、目指せ出版(笑)

  • 高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development

    先日、TimSortというソートアルゴリズムが話題になりました。TimSortは、高速な安定ソートで、Python(>=2.3)やJava SE 7、およびAndroidでの標準ソートアルゴリズムとして採用されているそうです。 C++のstd::sort()よりも高速であるというベンチマーク結果1が話題になり(後にベンチマークの誤りと判明)、私もそれで存在を知りました。実際のところ、ランダムなデータに対してはクイックソート(IntroSort)ほど速くないようですが、ソートというシンプルなタスクのアルゴリズムが今もなお改良され続けていて、なおかつ人々の関心を引くというのは興味深いものです。 しかしながら、オリジナルのTimSortのコードは若干複雑で、実際のところどういうアルゴリズムなのかわかりづらいところがあると思います。そこで今回はTimSortのアルゴリズムをできるだけわかりやすく解

    高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development
  • 正規表現エンジンを作ろう (1)

    はじめに こんにちは。hirataraです。 私が初めて正規表現を使ったのは、PerlによるCGIでの文字列処理でした。それから私はPerlを使い続け、今では正規表現なしのコーディングは考えられないほど、正規表現を当たり前の機能として日常的に使っています。昔は標準では正規表現をサポートしていなかったJavaも、今では正規表現をサポートするようになりました。Javaだけではなく、今日ではほとんどの高級言語にとって、正規表現はなくてはならない機能であると言っても過言ではないほどメジャーな機能となっています。 記事では、この正規表現の舞台裏に光を当てます。一見すると作ることが難しそうな正規表現エンジンですが、その根底には数学的な概念があり、その概念さえ知っていれば基礎となる機能の実装はそんなに難しくありません。この連載ではその数学的な概念をPythonを使って表現しながら、実際に動作する正規表

    正規表現エンジンを作ろう (1)
  • N01ランキング マネーのヒント - Home

    今すぐお金が必要!でも他社で審査に落ちてしまった、そんな時におすすめの審査が柔軟なキャッシングサービスをご紹介します。

  • アプリプラネット: ログインする

    アカウントを作成しますか? 以下にメールアドレスをご入力ください。メールアドレスの認証後は、すぐにソーシャルコミュニティに入ることができます! あなたのメール アドレス:

  • 第10回 麻雀の役を判定する:ITpro

    図1に示す(1)から(3)までの麻雀(マージャン)の手牌があります。「あがり牌」はすべて山からツモったものとし,リーチはかけていません。またドラやハイテイ*1なども関係ないものとします。これらの役を判定して,親の場合の点数を計算するプログラムを作ってください。 「ややこしや~ややこしや~」というのは野村萬斎ですが,思わずそううなってしまうことがプログラミングをしているとよくあります。今回の麻雀の役判定は,考えれば考えていくほどややこしく,そうしたものの代表と言えるでしょう。排他処理や優先順位が複雑にからんでいて一筋縄ではいきません。 今回はややこしい組み合わせを解決する方法を考えてみます。麻雀になじみのない方も,ちょっとしたパズル気分で試してみてください。 麻雀の役を考える 麻雀を知らない方のためにルールをおおざっぱに説明しておきましょう*2。麻雀の牌には,大きく分けて「萬子(マンズ)」「

    第10回 麻雀の役を判定する:ITpro
  • University of Aizu Online Judge

    Welcome This online judge system includes problems criated by faculty members and students of The University of Aizu. In addition, it includes an archive of problems from different programming contests. You can solve problems which were given in the programming contests for high school students, Japan domestic contests for ACM/ICPC, and Asia regional contests for ACM/ICPC in Japan. The system wil

  • QuickDrawはどのように素早く円を描いていたのか? - ザリガニが見ていた...。

    かつてのMac OS9までの描画エンジンの主役はQuickDrawが担っていた。GUIなOSでは、文字も含めてすべてをグラフィックとして扱うので、画面に見えているすべてのもの*1はQuickDrawによって描かれていたことになる。描画エンジンは、GUIなOS開発の要となる技術である。その出来が、GUIなOS開発の成否を分けるとも言える。 そして、最初期のQuickDrawは、ビル・アトキンソンがたった一人で開発したそうである。 当時(25年以上前)のCPUは、動作クロックが8MHzという性能だった。(現在は2GHz=2000MHzかつ、複数コアが当たり前) そのような性能であっても、違和感なくマウスで操作できるOS環境にするために、斬新な発想や試行錯誤を重ね、相当な努力の末に開発されたのがLisaやMacintoshであった。 Amazon.co.jp: レボリューション・イン・ザ・バレー

    QuickDrawはどのように素早く円を描いていたのか? - ザリガニが見ていた...。
  • Strassen algorithm - Wikipedia

    Not to be confused with the Schönhage–Strassen algorithm for multiplication of polynomials. In linear algebra, the Strassen algorithm, named after Volker Strassen, is an algorithm for matrix multiplication. It is faster than the standard matrix multiplication algorithm for large matrices, with a better asymptotic complexity ( versus ), although the naive algorithm is often better for smaller matri

  • 「最強最速アルゴリズマー養成講座」関連の最新 ニュース・レビュー・解説 記事 まとめ - ITmedia Keywords

    最強最速アルゴリズマー養成講座: そのアルゴリズム、貪欲につき――貪欲法のススメ アルゴリズムの世界において、欲張りであることはときに有利に働くことがあります。今回は、貪欲法と呼ばれるアルゴリズムを紹介しながら、ハードな問題に挑戦してみましょう。このアルゴリズムが使えるかどうかの見極めができるようになれば、あなたの論理的思考力はかなりのレベルなのです。(2010/9/4) 最強最速アルゴリズマー養成講座: 病みつきになる「動的計画法」、その深淵に迫る 数回にわたって動的計画法・メモ化再帰について解説してきましたが、今回は実践編として、ナップサック問題への挑戦を足がかりに、その長所と短所の紹介、理解度チェックシートなどを用意しました。特に、動的計画法について深く掘り下げ、皆さんを動的計画法マスターの道にご案内します。(2010/5/15) 最強最速アルゴリズマー養成講座: アルゴリズマーの登

  • LZW圧縮アルゴリズムの概要 - ウェブで用いられる画像形式。

    GIF画像を取扱うのに欠かせないLZW圧縮について解説します。 特にGIF画像の処理におけるLZW圧縮について解説致します。 LZW圧縮の原理。 LZW圧縮は、LZ77圧縮を改良したものとして知られております。 LZ77圧縮に関しては、デフレート圧縮(LZ77圧縮)アルゴリズムの概要で解説しております。 LZ77圧縮は、過去に出てきた単語が再度出てきたら、それを符号化するというものでした。 しかし、LZ77圧縮の最もプリミティヴなコーディングでは、いちいち圧縮した文字列を再度検索しなければなりませんでした。 このため、効率良い圧縮を実現する為に、LZW圧縮では辞書と呼ばれる記憶領域を用意します。 辞書には、圧縮過程で出てきた単語を逐次登録する事となっており、圧縮処理ではこの辞書を検索すれば良い事になります。 具体的なLZW圧縮アルゴリズムは以下のようになります。 まず、最初の一文字を読込ん

    LZW圧縮アルゴリズムの概要 - ウェブで用いられる画像形式。
  • アルゴリズムの紹介

     ここでは、プログラムなどでよく使用されるアルゴリズムについて紹介したいと思います。 元々は、自分の頭の中を整理することを目的にこのコーナーを開設してみたのですが、最近は継続させることを目的に新しいネタを探すようになってきました。まだまだ面白いテーマがいろいろと残っているので、気力の続く限りは更新していきたいと思います。 今までに紹介したテーマに関しても、新しい内容や変更したい箇所などがたくさんあるため、新規テーマと同時進行で修正作業も行なっています。 アルゴリズムのコーナーで紹介してきたサンプル・プログラムをいくつか公開しています。「ライン・ルーチン」「円弧描画」「ペイント・ルーチン」「グラフィック・パターンの処理」「多角形の塗りつぶし」を一つにまとめた GraphicLibrary と、「確率・統計」より「一般化線形モデル」までを一つにまとめた Statistics を現在は用意して

  • LZW Data Compression | Mark Nelson

    Note: I have an updated article on LZW posted here. Please check out the new article and tell me what you think. I hope it improves on this post and makes LZW easier to understand. Thanks to Jan Hakenberg for correction of a couple of errors! In Figure 4, the values for new table entries 259 and 265 were truncated. Thanks to David Littlewood for pointing out the missing line of pseudocde in Figure

    LZW Data Compression | Mark Nelson
  • GoogleのMapReduceアルゴリズムをJavaで理解する

    GoogleMapReduceアルゴリズムをJavaで理解する:いま再注目の分散処理技術(前編)(1/2 ページ) 最近注目を浴びている分散処理技術MapReduce」の利点をサンプルからアルゴリズムレベルで理解し、昔からあるJava関連の分散処理技術を見直す特集企画(編集部) いま注目の大規模分散処理アルゴリズム 最近、大規模分散処理が注目を浴びています。特に、「MapReduce」というアルゴリズムについて目にすることが多くなりました。Googleの膨大なサーバ処理で使われているということで、ここ数年の分散処理技術の中では特に注目を浴びているようです(参考「見えるグーグル、見えないグーグル」)。MapReduceアルゴリズムを使う利点とは、いったい何なのでしょうか。なぜ、いま注目を浴びているのでしょうか。 その詳細は「MapReduce : Simplified Data Proc

    GoogleのMapReduceアルゴリズムをJavaで理解する
    kcha
    kcha 2009/09/18
    今更ながら
  • C言語による輪郭追跡処理について

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

  • strchr.com - Radium Software

    strchr.com は,西シベリア在住のプログラマー Peter Kankowski 氏が綴るプログラミング TIPS 集 Wiki だ。主に C と x86 アセンブリと Win32 における最適化の話題について触れている。比較的一般性の高い話題から構成されているため,プログラマーであれば大抵の人にとって参考になる部分があるのではないかと思う。 例えば各種のハッシュ関数について性能の比較を行っているページなどいかが? このページの結論として勧められているのは MurmurHash 2.0 というアルゴリズム。僕はこのアルゴリズムをこのページで初めて知った。

    strchr.com - Radium Software
  • ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室

    ゲームの作り方とアルゴリズムをジャンル別にまとめてみました。ゲーム制作や、プログラミングの勉強用にご活用ください。言語別ゲームプログラミング制作講座一覧もあわせてお読みください。 リンク切れがおきていたものは、URLを表示しておくので、Internet Archiveなどでキャッシュを表示させてみてください。 RPG ゲームの乱数解析 乱数を利用した敵出現アルゴリズムの解説 各種ゲームプログラム解析 FF、ドラクエ、ロマサガのプログラムの解析。乱数の計算など ダメージ計算あれこれ(http://ysfactory.nobody.jp/ys/prg/calculation_public.html) ダメージの計算式 エンカウントについて考えてみる エンカウント(マップでの敵との遭遇)の処理方法いろいろ RPGの作り方 - ゲームヘル2000 RPGのアルゴリズム ドルアーガの塔 乱数の工夫の

    ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室