タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

algorithmとjavascriptに関するtakadoのブックマーク (2)

  • 東京を走る路線のデータを使って、最短経路問題をダイクストラ法で解く - imHo

    ダイクストラ法が小さなサンプルデータで動いたら、実際のデータを使ってみたくなるのが人情。東京を走る地下鉄のデータでやってみたいと思った。 JavaScriptとPrototype.jsとGoogleMapsAPIとすったもんだしたあげく、なんとか動くものができた。 502 Bad Gateway テストアプリはこちら JavaScriptのソースはここのhtmlに 駅や路線のデータは駅データ.jpのものを使わせてもらいました。 使ったのは東京メトロ+都営+山手線 駅(ノード)の数は、同じ駅でも路線ごとで別にカウントして 322 駅同士をつなぐ線路(エッジ)の数は、徒歩や乗換えを含め 912 体感もっさり感じるけど、経路の検索以外のところがかなりかかってる Tips Prototype.js Array.without は超重い、使うな! Hash.keys で返ってくるキーはすべて文字列に

    東京を走る路線のデータを使って、最短経路問題をダイクストラ法で解く - imHo
  • ロシア農民のかけ算とCPU - NullPointer's

    ロシアの農民のかけ算という、かけ算の方法があるらしい。 たとえば9×12ならば、前の数を半分にしていき、後の数を2倍していく。 9 12 4 24 2 48 1 96前の数が2の倍数になってるものを削除して 9 12 1 96残った後ろの数を足すと 12 + 96 = 108あら不思議、9×12の答えになったよコレ。 このロシアの農民のかけ算が何をしているのか調べてみると 9 * 12 = (4 * 2 + 1) * 12 = (4 * 2 * 12) + 12 = (4 * 24) + 12 = (2 * 48) + 12 = (1 * 96) + 12 = 96 + 12な感じに分配法則やら結合法則やら中学校一年で習うような数学テクを使った計算をルーチン化しているものだった。 2倍や半分はシフト演算でできるし、偶数奇数は最下位ビットを見れば分かるので簡単にプログラミングできそう。Jav

    ロシア農民のかけ算とCPU - NullPointer's
  • 1