問題タブ [rabin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Rabinハッシュ関数-JavaでのFAST実装
JavaでのRabinハッシュ関数の実装を探しています。誰かが高速ライブラリを推奨できますか?
更新:ここでライブラリをテストしました。
2GHzプロセッサで1mmのランダムURLをハッシュするのに約2200msかかります。
これは確かに私のニーズには十分ですが、モネントを取得したら別のライブラリをテストし、結果をここに投稿します。
.net - .NETを使用したRabinフィンガープリント
.NETを使用したrabinフィンガープリントの実装はありますか?
algorithm - Rabinの最近傍(最も近い点のペア)アルゴリズム?
そこで、マイケル・ラビンによるアルゴリズムの詳細を見つけようとしています。このアルゴリズムは、O(n)時間で2Dの点のセットが与えられた場合に最近傍を見つけます。何らかの理由で、グーグル検索は完全に私を失敗させています。私が見つけた最高の(そして唯一の)説明はここにあります:http://rjlipton.wordpress.com/2009/03/01/rabin-flips-a-coin/。
誰かがこれについて何か知っているか、主題に関する本や論文をどこで見つけるかを知っているなら(できればオンラインで!)、私はあなたが量り込んでくれて本当に感謝しています。
algorithm - このハッシュ/キャッシング/バージョニングアルゴリズムの名前は何ですか?
私は数週間前のプレゼンテーションでそれを見て、それを実装しようとしましたが、失敗し、それを忘れました。しかし今、私はそれがどのように機能するか知りたいです=)
これは、データを効率的に転送/保存する方法です。それはどんな言語でも機能します。これは(私が思うに)それがすることです:
非常に大きなファイルが1つあります(たとえば、Webサイトのjavascriptコレクション全体)。
- 48バイトのブロックに分割します
- 48バイトのすべてのブロックをハッシュします(例:MD5)
- 0x00で終わるハッシュ上のブロックのリストを分割します
- 大きなブロック(> = 1ハッシュ)は異なるサイズになります。非常に大きいものもあれば、非常に小さいものもあります。
- それらのハッシュの間にブロックを接着します(ここでも、実際のデータのサイズが大きく異なります)
- それらのブロックをハッシュする
- これで、大きなファイルの現在のバージョンを表すハッシュのリストができました。
大きなファイルでコードの一部が変更された場合、変更されるハッシュは1つまたは2つだけであるという考え方です。新しいファイルを使用すると、上記のすべての手順を実行し、実際に変更された部分(ブロック、ハッシュで識別可能)のみをアップロード/ダウンロードします。変更されたコードの量とそのコードを囲むブロックのサイズに応じて、4つを超えるブロックをダウンロードする必要はありません。(ファイル全体ではなく)通信のもう一方の端は、元のブロック(同じアルゴリズム、同じ機能)を新しいブロックに置き換えます。
おなじみですか?彼らは名前について言及しましたが、何も見つかりませんでした。私がそれを構築しようとしたとき、それはうまくいきませんでした。なぜなら、正確に48バイトを変更しないと[1]、その変更後のすべてのハッシュが異なるからです[2]。
誰かが名前を知っているなら:素晴らしい。誰かがそれを説明することができれば:完璧です!
更新
私はそれが含まれていたプレゼンテーションを見つけました。それは新製品「サイロ」で言及されました(そして使用されました) :http: //research.microsoft.com/apps/pubs/default.aspx?id = 131524関連:http: //channel9.msdn.com/Events/MIX/MIX11/RES04(つまり、実際にはMicrosoftの調査でした!きちんと!)
最初のリンクから:
Silo対応のページは、このローカルストレージをLBFSスタイルのチャンクストアとして使用します。
2番目のリンク(ビデオ)では、良いものはで始まり6:30
ます。今、私はそれを二度見ました...私はまだそれを理解していません=)
キーワードはとDelta encoding
ですRabin fingerprints
。
java - Madcreator Rabinfingerprint コマンドライン vs Java/scala プログラム
Madcreator の Rabinfingerprint Java ライブラリを scala プログラムhttps://github.com/themadcreator/rabinfingerprintで使用しています。
コマンド ラインを使用して、53 度の既約多項式を生成します。
次に、ファイルのフィンガープリントを作成します。
私が抱えている問題は、コードを使用して、同じ入力が与えられたときに同じ出力を生成することです。
python - Pythonでのミラーラビン素数テストの最適化/修正
これが私のコードです:
私が理解しているように、このテストは非常に大きな数を処理できるはずですが、私のスクリプトは 50034901 のような数で動かなくなります。どこかでエラー/重大な非効率性を犯したと思います - 私のスクリプトは小さな数でも機能するためです.