タグ

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

タグの絞り込みを解除

Rubyとalgorithmに関するhrsttのブックマーク (7)

  • 新ソートアルゴリズム「配列挿入ソート」だ! - hp12c

    (追記:2012-1-10) id:m11m さんのコメントによりこのソートはバケットソート*1と呼ばれる既知のソートアルゴリズムであることがわかりました ^^; 追記によりお詫び申し上げます (追記:2012-1-12) 記事に対するアクセスが異常なので調べてみると、dankogai氏のネタにされていたという名誉を受けていたことが判明しました^^; 光栄です 404 Blog Not Found:algorithm - bucket sort - 比較しなければソートは相当速い - 以前にスリープソートという ソートアルゴリズムが発見されたよね 常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream で僕はこれに対抗してランニングソート っていうアルゴリズムを見つけたんだよ まあ失敗したんだけど.. sleep sort

    新ソートアルゴリズム「配列挿入ソート」だ! - hp12c
  • Support Vector Machines (SVM) in Ruby - igvita.com

    By Ilya Grigorik on January 07, 2008 Your Family Guy fan-site is riding a wave of viral referrals, the community has grown tenfold in last month alone! First, you've deployed an SVD recommendation system, then you've optimized the site content and layout with the help of decision trees, but of course, that wasn't enough, and you've also added a Bayes classifier to help you filter and rank the cont

  • フィボナッチ数とひまわり - まめめも

    最近何かと話題のフィボナッチ数計算の高速化ですが、 F(n) = (fib(n+1), fib(n)) (2次元の縦ベクトルだが表記の都合で横に書く) A = ((1, 1), (1, 0)) (第1行が(1, 1)で第2行が(1, 0)の行列) すると,F(n) = A F(n-1) = A A F(n-2) = A A A F(n-3) = ...となるから,F(n)を計算するためには,Aのn乗を計算して,それに右からF(0)をかければ良いことになる。 計算量の工夫でプログラムは劇的に速くなる 以前この記事を読んだときも、ははー、と思ったのですが、そのときは実装してみなかったのでちょっと実装してみました。 require "matrix" def fib(n) aux = proc do |m, a| case m when 0 then Matrix.I(2) when 1 then

  • 集合知プログラミング 2章 - 類似度計算の比較 - たぐってつづる

    id:plasticscafe が「集合知プログラミング」をPythonからScalaに翻訳しながら写経していくというので, 尻馬に乗って自分もやった気になってみよう ちょっとお手伝いがてら自分もやってみました. まとめ Scalaで集合知プログラミング 集合知プログラミング 作者: Toby Segaran,當山仁健,鴨澤眞夫出版社/メーカー: オライリージャパン発売日: 2008/07/25メディア: 大型購入: 91人 クリック: 2,220回この商品を含むブログ (267件) を見る 題 「集合知プログラミング」2章のエクササイズに Tanimoto係数について調査、検討してみる というのがあるそうなので,コサイン類似度と比較してみました*1. 以下,勘に頼る部分が大きいので詳しい人からコメントほしいっ! 数式で比較 比較するデータの組を下のようにn個ずつのベクトル(配列)とし

    集合知プログラミング 2章 - 類似度計算の比較 - たぐってつづる
  • コサイン距離ベースのLSHをRubyで - <s>gnarl,</s>技術メモ”’<marquee><textarea>¥

    参考文献:Web+DB press vol.49 レコメンド特集のPart3など。 アルゴリズムの概要 詳細(特に数学的な)はぐぐれ。 モチベーションとしては、高次元における近傍点探索を高速で行いたい。まじめにやるとどう工夫しても計算量がすごいことになるので、近似で。 どうするかというと、「距離が近いと同じような値になるハッシュ関数」を使う。あるベクトルの近傍を求めたい場合、そのベクトルのハッシュと同じ(もしくは近い)値のハッシュを持つベクトルをテーブルから引いてきて返す。計算量がどうなるかはややこしいけど、とりあえず全部探すよりは速い。 で、どういう関数をハッシュとするのか。これは距離の定義によって異なる。ハミング距離、コサイン距離、ユークリッド距離などにはそういった関数の存在が知られている。 コサイン距離の場合、ランダムなベクトルをいくつか用意して、入力されたベクトルがそれらと似ている

    コサイン距離ベースのLSHをRubyで - <s>gnarl,</s>技術メモ”’<marquee><textarea>¥
  • "sep".join(list) が気持ち悪い理由 - kなんとかの日記

    list が必須で separator はオプションなんだから、list が receiver になるほうがどう考えても自然だろう。省略可能な separator が receiver にくるほうが不自然だ。 str.join() 処理での登場人物は2人いる。連結文字(区切り文字=separator)、連結される文字列の列だ。 この二つを比べると、「連結される文字列の列」が情報的に重要な場合がほとんどだろう。それを元に文字列の列が主役で連結文字はオマケと考えると、「joinが主役でない連結文字側のメソッドになる何てキモチワルイ」となる。 ','.join() がなぜキモイのか - methaneのブログ そういう考え方もできるけど、もっと単純に考えればいいと思う。joinするときに、list (or iterable) は必須だけど、separatorはあくまでオプションであって、省略可能

    "sep".join(list) が気持ち悪い理由 - kなんとかの日記
  • imHo

    ようこそゲストさん ブログトップ 記事一覧 ログイン無料ブログ開設 imHo

  • 1