タグ

algorithmに関するtaka222のブックマーク (9)

  • PFI で2ヶ月のインターンシップに参加してきた - 肉とビールとパンケーキ by @sotarok

    8月の頭から先週10月2日まで,Preferred Infrastructure (PFI) でインターンシップに参加してきました. 思えばあっという間でしたが,非常に濃い体験をし,多くのものを得た2ヶ月でした. インターンでなにをやったのか,何を得たのか,自分なりにまとめたいと思います.長文ですみません.結局うまくまとまらなかった... エントリー 日記風(w)に,エントリーから振り返りたいと思います.PFIでインターンの募集が始まった,と聞いたのは, @kzk_mover さんか @ichii386 さんの Twitter でのつぶやきからでした. で,まあPFIは太田さんを知ってたりして,素敵な会社だなーと思ってたこともあり,募集要項は「レベルが高い」とTwitterやブクマでも話題だったので受かるかどうか自信はなかったんですが,学生最後の年だし,今年やらなかったらもうインターンもで

    PFI で2ヶ月のインターンシップに参加してきた - 肉とビールとパンケーキ by @sotarok
  • Python: 画像で与えられた迷路に対し2点間の最短経路を求める

    迷路の描かれた画像に対して、ピクセルの座標で指定したスタート地点とゴール地点の最短経路を求めるプログラムをPython+PILで書いてみた。使用する画像は、デジカメで撮ったものでも、ウェブから拾ってきたものでも、ペイントソフトで自作したものでも構わない。 まずは使用例を見て欲しい。この画像は携帯カメラで撮った自作の簡単な迷路だ(画像上)。それに対して指定した2点間の最短経路を赤線で示してみた(画像下)。ピクセル単位で計測しているので赤線が若干ガタガタしていて完全な最短経路ではないがほぼ最短と考えていいだろう。迷路画像(画像上)をmaze01.jpgとし、スタート地点の座標が(240, 160)、ゴール地点の座標が(210, 400)の場合、コマンドラインで以下のように実行する。 maze_solver.py maze01.jpg -s 240 160 -g 210 400 これで最短経路を

    Python: 画像で与えられた迷路に対し2点間の最短経路を求める
  • どのようにして一番右の1のビット位置を求めているのか? - ザリガニが見ていた...。

    一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録 「ものすごい」コードなのだけど、凄過ぎて自分には全くチンプンカンプン...。それでも、どの辺が凄いのか、ちゃんと理解したい。シンプルなコードから順を追って確かめてみた。 public static int GetNumberOfTrailingZeros( long x ) { if ( x == 0 ) return 64; ulong y = ( ulong ) ( x & -x ); int i = ( int ) ( ( y * 0x03F566ED27179461UL ) >> 58 ); return table[ i ]; } static int[] table; table = new int[ 64 ]; ulong hash = 0x03F566ED27179461UL; for

    どのようにして一番右の1のビット位置を求めているのか? - ザリガニが見ていた...。
  • 一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録

    一番右端の立っているビット位置(RightMostBit)を求めるコードで速いのないかなーと探していたら、ものっっっすごいコードに出会ってしまったのでご紹介。2ch のビット演算スレで 32bit 値のコードに出会って衝撃を受けて、その後 64bit 値版のヒントを見つけたのでコードを書いてみました。 この問題は ハッカーのたのしみ―物のプログラマはいかにして問題を解くか (Google book search で原著 Hacker's delight が読めたのでそれで済ませた) で number of trailing zeros (ntz) として紹介されています。bit で考えたときに右側に 0 がいくつあるかを数えるもの。1 だと 0、2 だと 1、0x80 なら 7、12 なら 2 といったぐあい。0 のときに表題どおりの問題として考えるといくつを返すの?ってことになるので、

    一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録
  • http://msdn.microsoft.com/ja-jp/academic/cc998604.aspx

    http://msdn.microsoft.com/ja-jp/academic/cc998604.aspx
  • 動的SQLによる数独の超高速解法

    Pinskiさんの記事は、「SQLで数独を解ける」ことを示したという点で評価できます。しかしながら、そのためのコードと実行時間が共に長大であるため、「SQLは面倒で遅い」という誤解を読者に与えかねません。稿で紹介する方法で、誤解が払拭されることを期待します。 第1、2部と第3部の手法を簡単にまとめておきましょう。 第1、2部では、手続き的な記述、つまり、どうすれば数独の解が得られるかの具体的な記述によって数独を解いています。手続き的とは言っても、せっかく宣言型言語であるSQLを使うので、手順の各ステップはなるべく宣言的に記述するように心がけています。 第3部(稿)の方法の質はたった1行のSELECT文です。このSELECT文には「数独の解とはどういうものか」だけが記述してあり、その解を得るための具体的な方法はコンピュータが考えます。ただし、このSELECT文は人間が手で簡単に書けるよ

    動的SQLによる数独の超高速解法
  • 大都会の夜景をコンピューターによって完全自動で描画するムービー

    ハリウッド映画CGシーンは何人ものCGアーティストが、高価な機材を何台も使って手作業で作成されるために、予算が高騰している要因の1つにもなっているほどですが、これらのCGにも勝るとも劣らない大都会の夜景をどこにでもあるコンピューター1台だけで生成してみた人がいます。 手作業でテクスチャーを描いたり、グラフィックボードに搭載されているピクセルシェーダーのように、外部のプログラムを用いて特殊な効果を与えるなどの手間をかけることなく、内部のプログラムが自動で生成するポリゴンとテクスチャのみを用いて壮大な夜景が生成されています。いかに単純な仕掛けで人間の目をだましてものすごい映像を作り出すか、よいヒントになるかもしれません。 詳細は以下。 Twenty Sided >> Blog Archive >> Procedural City, Part 1: Introduction このプログラムはS

    大都会の夜景をコンピューターによって完全自動で描画するムービー
  • MapReduce - naoyaのはてなダイアリー

    "MapReduce" は Google のバックエンドで利用されている並列計算システムです。検索エンジンのインデックス作成をはじめとする、大規模な入力データに対するバッチ処理を想定して作られたシステムです。 MapReduce の面白いところは、map() と reduce() という二つの関数の組み合わせを定義するだけで、大規模データに対する様々な計算問題を解決することができる点です。 MapReduce の計算モデル map() にはその計算問題のデータとしての key-value ペアが次々に渡ってきます。map() では key-value 値のペアを異なる複数の key-value ペアに変換します。reduce() には、map() で作った key-value ペアを同一の key で束ねたものが順番に渡ってきます。その key-values ペアを任意の形式に変換すること

    MapReduce - naoyaのはてなダイアリー
  • 1