問題タブ [fnv]

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.

0 投票する
1 に答える
8019 参照

java - JavaでのFNVハッシュアルゴリズムの成熟した実装はありますか?

コンシステントハッシュシステムの実装で使用する高速ハッシュアルゴリズムの良い選択として、Fowler-Noll-Vo(FNV)が推奨されているのを見てきました。

しかし、それに適したJavaソースを見つけることができないようです。

0 投票する
4 に答える
2246 参照

iphone - Objective-C:Fowler–Noll–Vo(FNV)ハッシュの実装

iPhoneプロジェクトにHTTPコネクタがあり、クエリにはFowler–Noll–Vo(FNV)ハッシュを使用してユーザー名から設定されたパラメーターが必要です。

この時点でJava実装が機能しています。これは、次のコードです。

今iPhone側で、私はこれをしました:

このスクリプトでは、Javaの場合と同じ結果は得られません。

最初のループで、私はこれを取得します:

ハッシュ=0

hash = 100(最初の文字は「d」です)

hash = 1865261300(Javaのようにhash=100およびfnv_prime=-2128831035の場合)

誰かが私が欠けているものを見ますか?

助けてくれてありがとう!

0 投票する
3 に答える
1112 参照

delphi - FNVの実装

http://isthe.com/chongo/tech/comp/fnv/から FNV ハッシュを実装しようとしています。

そのページの PowerBasic のインライン asm を Delphi に変換しました。

指定されたファイルのサイズが 200KB を超える場合、出力は乱数 (ハッシュ) になります。何か不足していますか?

0 投票する
1 に答える
2197 参照

c - Cの文字列のFNVハッシュ

これがアルゴリズムの言うことです。

しかし、文字列のセットがある場合、FNV_offset_basisとして何を取る必要がありますか?

ハッシュされるデータの各オクテットの意味は何ですか。

また、テーブルのサイズはどうあるべきか、ハッシュされる文字列がN個あるとします。

文字列の変更を手伝ってください。

ありがとう。

0 投票する
4 に答える
550 参照

c++ - 静的擬似乱数フィールド ジェネレーター

ゲーム用に作成した乱数ジェネレーターで問題が発生しています。高速な疑似ランダム フィールド ジェネレーターが必要です。暗号的に安全である必要はありません。ベクトルとシードを取り込んで、人間による簡単な検査を欺くのに十分なランダムなハッシュ値を与えるだけで済みます。

ただし、このコードは、2 次元ベクトルを指定して結果を 2 で変更すると、「疑似乱数」出力を生成できません。ほぼチェッカーボード パターンが生成されます。

理由はわかりませんが、正直なところ、それがわかればうれしいのですが、それがわからなくても気にすることはありません。ほとんどの場合、乱数を生成するこの方法はひどすぎると思ったので、この問題にアプローチする別の方法を知りたいと思いました。つまり、「何が間違っているのか」と尋ねるのではなく、この方法で乱数を生成するための優れた代替方法についてのリソースまたはポインターを本当に探していました。

基本的に、同じ入力を入力すると、元に戻すことができる「無限」の 2D ノイズ フィールド (ホワイト ノイズと考えてください) を生成しようとしています。

私が書いたコードは次のとおりです (これは fnv ハッシュであるはずです。テンプレートのことをお許しください。これをコードから取り出しただけです。後でクリーンアップします)。

0 投票する
2 に答える
1914 参照

php - FNVの「フレーバー」とPHPの実装

さまざまなデータ(URL、キーワードなど)のハッシュを生成するための要件の一部として、PHPベースのプロジェクトにFNVハッシュアルゴリズムを統合しようとしています。

NevenBoyanovによるこの実装を見ました。彼は、PHPの算術制限のために、乗算の代わりにビット単位のシフトと加算を使用することを余儀なくされたと述べました。彼の実装は正しいですか?私の知識はコンピュータサイエンスのこの分野ではどういうわけか限られているので、自分でそれを確認することはできません。

私が持っているもう一つの質問は、FNVのさまざまな「フレーバー」についてです。32ビット、64ビット、および128ビットのバリアントを提供することを確認しましたが、上記の実装を使用すると、常に8文字の16進ハッシュが得られます(dechex()を使用して整数の結果を16進に変換します)。

「Loremipsumdolorsit amet、consecteturadipiscingelit。Proinatlibero mi、quis luctus massa。」という入力が与えられると、次の16進数の結果が得られます。

  • (32ビットオフセット)5b15c0f2
  • (64ビットオフセット)6ea33cb5

なんでそうなの?64ビットFNVからの16文字の16進結果を期待しています。「フレーバー」は、使用される算術演算とシードの種類のみを指し、結果の長さは指しませんか?(つまり、64ビットFNVと言うと、ハッシュ関数は64ビット操作とシードを使用しますが、結果は32ビットのままです)

少しの啓蒙をいただければ幸いです:)

0 投票する
1 に答える
1516 参照

python - FNV1A_64 が一致しません

FNV1A_64ハッシュの 3 つの異なる実装を試しています。

1)マートキット

結果-5808609649712063748

2)パイハッシュ

結果53876069782339L

3) fnv

結果: 0xaf63ac4c86019afc (12638134423997487000 10 進数)

すべての結果が異なるのはなぜですか?

0 投票する
1 に答える
7545 参照

c# - FNV ハッシュの C# 実装

GetHashCodeオーバーライドからデータに対する迅速な比較/検索の実行まで、C# で適切なハッシュ アルゴリズムにアクセスする必要があるケースが数多くあります。

FNV ハッシュは、非常に簡単で優れた迅速なハッシュ アルゴリズムであることがわかりました。ただし、C# 実装の良い例を見たことがありません。

FNV-1a ハッシュ アルゴリズムのコアは次のとおりです。

したがって、クラスをオーバーライドGetHashCodeすると、次のようなことになります。

人々はこれについてどう思いますか?

0 投票する
2 に答える
998 参照

c - FNV ハッシュをコンパイルして実行する方法

ソースコードとハッシュアルゴリズムがハッシュ衝突をどのように処理するかを観察するために、オープンソースのハッシュ関数を調べています。私は現在、低ビットハッシュ関数に興味があり、この別の投稿を通じて FNV を知りました。

しかし、この特定のソース コードを実際にテストする方法を知っている人はいますか? C ファイルのいくつかをコンパイルしようとしましたが、gcc からエラーが発生し続けます。

プログラムを実行してテストするために具体的にコンパイルする必要があるファイルについてのアイデアはありますか?

事前にご協力いただきありがとうございます

FNV:情報ダウンロード

make check を実行すると、次のようになります。

多分これは私が取得することになっているものです.FNVをもっと徹底的に読んで、実際にテストを実行する方法を確認しますが、最初はそれを見ませんでした

0 投票する
1 に答える
301 参照

delphi - FNV ハッシュは 64 ビット OS で異なる結果を生成します

FNV を使用して、32 ビット OS でファイルをハッシュしています。64 ビット OS でコードを使用すると、同じコードのハッシュ結果が異なるのはなぜですか?

これが私のコードです: