Ruby での範囲ツリーまたはセグメント ツリーの実装を探しています。利用可能なサンプルまたは宝石が見つかりませんでした。
誰もサンプルコードを持っていますか?
ありがとう、
Ruby での範囲ツリーまたはセグメント ツリーの実装を探しています。利用可能なサンプルまたは宝石が見つかりませんでした。
誰もサンプルコードを持っていますか?
ありがとう、
と呼ばれるものがあるようです。interval-tree
レポはこちらhttps://github.com/gam3/interval-treeとこちらhttps://github.com/misshie/interval-treeです。作ったのは後の方のようですが、rubygems の宝石は最初の方を指しています。非常に奇妙な。
ドキュメントは、レポやその他の場所で間違っています。使用するには、 または のいずれかを使用しIntervalTree::InclusiveTree.new
ますIntervalTree::ExclusiveTree.new
。これは奇妙なことにどこにも文書化されていません。また、同様に奇妙ですが、これを修正するために github リポジトリに問題を追加することはできません。フォークして、コミュニティが維持できる新しいバージョンを作成することを検討しています。
とにかく、これを使用する方法は次のとおりです。
require "interval-tree"
itv = [(0...3), (1...4), (3...5),]
t = IntervalTree::Tree.new(itv)
p t.search(2) => [0...3, 1...4]
p t.search(1...3) => [0...3, 1...4, 3...5]
ご覧のとおり、require ステートメントもリポジトリで誤って文書化されています。なんて混乱。
このGithub リポジトリは...うーん... 'ruby interval tree' の Google での 4 番目のヒットです。