algorithm」カテゴリーアーカイブ

Pythonで全文検索を実装してみた

JavaScript でやってるのを見かけたので。  cf. JavaScriptで全文検索(N-gram)を実装してみる! – Simple is Beautiful. アルゴリズムは N-gram ってい … 続きを読む

カテゴリー: algorithm, Python | コメントする

リスト(配列)の中で隣り合う同じ値をグループ化する(3)

しつこいようだけど、今度は Go でやってみた。 package main import ( “fmt” ) func main() { var l1 = []int{1, 1, 2, 2, 3, 1, 1} var l … 続きを読む

カテゴリー: algorithm, Go | コメントする

リスト(配列)の中で隣り合う同じ値をグループ化する(2)

こないだのやつを Scheme と Haskell でやってみた。 まずは Scheme 版。 (define adjacent-group (lambda (lis) (let loop ((l (cdr lis)) … 続きを読む

カテゴリー: algorithm, Haskell, Scheme | コメントする

リスト(配列)の中で隣り合う同じ値をグループ化する

リストでも配列でもいいけど、つまりこういうのを [1, 1, 2, 2, 3, 1, 1] こうしたい。 [[1, 1], [2, 2], [3], [1, 1]] Ruby でやってみた。 def adjacent_g … 続きを読む

カテゴリー: algorithm, Python, Ruby | 1件のコメント

球面上の点を平面上にステレオ投影する

先週のさらに続き。先週は、球面上の点を平面上に投影するのに X, Y 座標をそのまま使って水平投影したけど、今度はステレオ投影というのをやってみる。ステレオ投影は Wikipedia に詳しく載っている。先週と同じように … 続きを読む

カテゴリー: algorithm, Ruby | コメントする

多数の点を球面上に一様分布させる(2)

一昨日の続き。最初と最後の点を極から移動(位置調整)するのを実装した。ついでに、gem 化して RubyGems.org にアップしておいた。gem install gss_generator でインストールできる。 使 … 続きを読む

カテゴリー: algorithm, Ruby | コメントする

多数の点を球面上に一様分布させる

ちょっと面白いものを見つけた。 cf. LEDドームのLEDの並びを決めるのに使用した計算式 – jakaladaのブログ 球面上に任意個の点を一様分布させる、座標を求めるもの。一般化螺旋集合(general … 続きを読む

カテゴリー: algorithm, Ruby | 1件のコメント

文字列間のレーベンシュタイン距離を求める(3)Haskell版ふたたび

去年の12月に2つの文字列のレーベンシュタイン距離を求めるっていうのを、JavaScript と Haskell でやった。もともとは Python での実装を参考に2次元配列を使ってやってみたもので、JavaScrip … 続きを読む

カテゴリー: algorithm, Haskell | コメントする

逆関数法で指数分布する乱数を生成する

[0,1)区間の一様乱数から、指数分布にならう乱数を生成するには、逆関数法というのが使える。指数分布の密度関数は、パラメータをτとすると:$$ f(\tau)=\lambda e^{-\lambda\tau} $$であり … 続きを読む

カテゴリー: algorithm, Ruby | コメントする

Box-Muller法で正規分布する乱数を生成する

一様分布する乱数から、正規分布に従う乱数を生成する方法に、Box-Muller法というのがある。Wikipediaによれば、(0,1) 区間の一様分布乱数2つ(X,Y)から、下の式で2つの正規分布乱数 $ Z_1 $ と … 続きを読む

カテゴリー: algorithm, Ruby | 1件のコメント