タグ

ブックマーク / higepon.hatenablog.com (7)

  • kd tree(kd木)を使った近傍点検索 - higepon blog

    kd tree を使った近傍点検索のメモ。 kd tree の日語の説明はkd木 - 日語版 Wikipedia。 近傍点検索の擬似コードがあり、日語版の元となっているのはkd-tree - 英語Wikipedia。 実際に動くコードで分かりやすいものは弾さんのところ。404 Blog Not Found:algorithm - 最近点検索をkd-treeで。 他には An intoductory tutorial on kd-trees という PDF があるが難しい。 kd tree の構築は、平衡木にするためのロジックがいくつかある事をのぞけばとても簡単。弾さんのコードを読めば分かると思う。 近傍点の検索は k 次元で説明されているものが多く分かりづらいと思った。自分で単純な2次元の場合にして考えれば良い。 流れは以下の通り。 検索対象点 p を kd tree 上で bi

    kd tree(kd木)を使った近傍点検索 - higepon blog
  • Gauche(Scheme) でデバッグをする4つの方法 - higepon blog

    Gauche でコードを書いているときにコードが意図どおりに動かないことがあります。そのような場合にデバッグする方法を4つ紹介します。 前提 まず Gauche はリリースされている最新版を使った方が良いでしょう。Linuxのディストリビューションによってはパッケージが古い場合あります。 またScheme は関数型言語なので、デバッグの単位は関数(手続き)ごとに行うことが多いです。一つ一つの手続きが意図どおり動いているのか?を調べながら進めるのが基になります。 方法1 print デバッグ Gauche には今のところデバッガがありませんから基的には print デバッグがメインとなります。単純な print デバッグから見ていきましょう。 以下のような sum という手続きで print デバッグしてみましょう。 (define (sum n) (if (= n 1) 1 (+ n

    Gauche(Scheme) でデバッグをする4つの方法 - higepon blog
    kiik
    kiik 2010/06/05
  • オンラインで動画・音声・教科書を無料で公開している大学の講義・授業まとめ - ひげぽん OSとか作っちゃうかMona-

    オンラインで授業を公開している大学とその講義の一覧のまとめです。 もし他にもご存知の方がいらっしゃれば、コメントやトラックバックなどで教えていただけるとうれしいです。 まとめ 英語ができるならば MIT 最強。国内は東大が比較的がんばっています。 (追記)国内ではWIDEのSOIががんばっているとのご指摘をいただきました。確かに素晴らしい講義がたくさんです。(表に追加しました) 講義はすぐそこに開かれているので、あとは「勉強方法」に従い講義を受けるだけだと思いました。 大学名のリンク先が講義公開 URL になっています。([高等教育シリーズ] 大学で勉強する方法) 大学名 公開形式 講義の例 備考 MIT 動画、講義資料 East Asia in the World、Japan in the Age of the Samurai 1800以上の講義が公開。中国語やポルトガル語に翻訳されてい

    オンラインで動画・音声・教科書を無料で公開している大学の講義・授業まとめ - ひげぽん OSとか作っちゃうかMona-
    kiik
    kiik 2009/05/10
  • 勉強方法を勉強して分かった僕に足りなかった3つのこと - ひげぽん OSとか作っちゃうかMona-

    勉強方法を勉強して分かった僕に足りなかった3つのこと。 それは 時間割 マインドマップ 復習 の3つ。 1.時間割 勉強をコンスタントに長期的に続けるならば時間割は大変有用。 時間割を作り実践してみて分かったが「次に何をやるべきか」に迷う時間は振り返ればとてももったいなかった。 時間割を作ればほぼ迷わない。迷うとすれば超イレギュラーな事が起きたときだけ。 時間も節約できるしペースもつかめる。 また時間割を家族と共有していれば「20:00になったから勉強してくる」と言うだけで理解してもらえるようになる。 ただし時間割は時が経ち「見慣れて目に入らなくなる」「実態に合わなくなる」事があるので注意が必要。 僕は毎週手書きで描き直している。 時間割の有用性についてはレバレッジ勉強法が詳しい。 2.マインドマップ 正直 マインドマップ を馬鹿にしていた。何で皆あのようなものに踊らされているのかと。それ

    勉強方法を勉強して分かった僕に足りなかった3つのこと - ひげぽん OSとか作っちゃうかMona-
    kiik
    kiik 2009/05/10
  • プログラミングErlang 読了 - higepon blog

    プログラミングErlang を読み終えた。読んだきっかけは、rui さんによる Erlang のすすめだったと思う。 java.util.concurrent に感動して、Shibuya.lisp の宴会で、同じくJava並行処理プログラミングを読んだ ruiさんと「あれすごいよねー。という話に」。 Mosh のスレッド対応は java.util.concurrent のようなものにしたいと考えていると話したところ、「 それならば、まずその前に Erlang のプロセスモデルを勉強した方がいいよ」と教えてくださったのだ。 期待値がとても高かったのだが、それを上回って当にすばらしいと言語だった。一時期皆を熱くさせた理由もよく分かる。 Erlang は関数言語なのもあって、万人向けのではないが、自分が作るものには大きな影響を与えることは間違いない。 特にメッセージパッシングスタイルを採用

    プログラミングErlang 読了 - higepon blog
  • 良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog

    Java並行処理プログラミングを読み終えた。ここ 1 年に読んだ技術書の中でダントツのベスト。(2位はWorking Effectively With Legacy Code) 「Javaだから関係ない」と思った人にこそ読んで欲しい。僕もここ数年 Java のコードなど一切書いていないが、このを読んで得たものは非常に大きかった。 このでは マルチスレッドプログラミングにおける問題と背景、その対処方法 Java が提供している API の設計と実装 を解説している。分かりやすさとレベルの高さを兼ね備えたとても良い。翻訳も最高。 僕はこのを読んで、Java の並行処理プログラミングは、想像を遙かに超えて進化している事に驚きを隠せなかった。何回も twitterJava すげーと叫んだ。 これを読んでしまうと、最近僕が熱心な Scheme も含めて、自分の身の回りにあるプログ

    良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog
  • Scheme どう書く?的 - higepon blog

    整列済みの number のリストがある。 '(1 3 4 5 6 12 13 15) このようなリストで数が連続している部分は '(1 2 3) -> '(1 . 3) のように両端のみを書くような記法を導入する。 最初の例のリストであれば以下のようになる。 '(1 (3 . 6) (12 . 13) 15) このようなリストの変換をするコードを書きたい。 自分の答えは↓だが、いまいちスマートではない。もっとかっこいいのを思いついたら教えてください。 (define (compact-number-list lst) (define (exact-next-number? a b) (cond [(and (number? a) (number? b)) (= (- b a) 1)] [(and (pair? a) (number? b)) (exact-next-number? (cd

    Scheme どう書く?的 - higepon blog
    kiik
    kiik 2008/12/07
  • 1