問題タブ [rabin-karp]
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.
c++ - Rabin Karp のローリング ハッシュ関数で Base と Mod の素数を選択する
これはよく聞かれますが、ベクトルのサイズが既にわかっていて、文字や整数に繰り返しがない場合はどうなるでしょうか?
仮定する:
最大 10 個の整数があり、重複がないことは既にわかっています。計算するベクトルがたくさんありますが、これは 10 が最大サイズである最悪のケースです。
フォーラム:
明らかに PRIME_BASE は = vector size - 1 である必要があり、この場合は 9 (9 が素数ベースではないことはわかっています) ですが、競合は発生しません。
しかし、PRIME_MOD を選択して、ベクトルの最大サイズと、その中に数値の繰り返しがないことを知って、生成された大きな数値を減らすにはどうすればよいでしょうか?
線形合同ハッシュを生成しようとしています。
ありがとう
更新
また、すべてのベクトルの最大数も既知であることをすでに知っていることも言及するのを忘れていました。これは、このサンプルケースでは 10 です。