問題タブ [hammingweight]
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.
elixir - ElixirのBitStringのビットカウントまたはハミングウェイト?
efficiently
エリクサーでビット文字列のハミング重みを計算するにはどうすればよいですか?
例:0b0101101001
ハミング重みが 5 である (つまり、5 ビットが設定されている)
私の試み:
prolog - SICStus Prolog: FFI が遅い、ハミングの重みを速く計算するには?
SICStus Prolog 4.3.2 マニュアルに示されているように、外部コード サンプルc1/2
Y is X+9
を実行し、そのランタイムを対応する Prolog コードと比較すると、奇妙なタイミング結果が得られました。
JIT を有効にすると、次のことがわかりました。
JIT( )をオフにした後SP_JIT=disabled
、タイミングは次のように変更されました。
適切なエラー処理と大きな整数のサポートがなくても、C コードは JITted Prolog コードのほぼ 4 倍の時間実行されます。JIT をオフにすると、タイミングの数値が多少変わりますが、全体像は変わりません。
SICStus でハミング重みの計算を高速化するにはどうすればよいですか? SWI には専用の算術関数がありますが、SICStus は (まだ) サポートしていないようです... popcount/1
bit-manipulation - HAKMEM Hamming Weight bithack にはバグがあります。それを保存する方法はありますか?
この関数は、32 の位のビットをカウントするために 33 番目のビットが必要なようです。
与えます:
しかし:
与えます:
絶対命令の数が非常に少ないため (高価な idiv 関数にもかかわらず、私の使用例では命令の数が重要です)、この関数または同様の関数を使用したいと思います。しかし、モジュラス15がどのように機能するかはよくわかりません。
7 ビットまでカウントするだけで済みます (8 ビットが理想的ですが)。この関数を修正する最善の方法は何ですか?
c++ - 与えられたハミング距離 2 と同じハミング重みでランダムな 64 ビット ネイバーを計算する最速の方法は何ですか?
ここですでに回答されている同様の質問に関係なく、次のことを知りたいです。
- 与えられた2 のハミング距離と同じ hammingweightでランダムな64 ビットネイバーを計算する最速の方法は何ですか?
私は次のやや素朴な実装を思いつきました。Core i7 マシンで MSVC を使用している場合、どうすれば (はるかに) うまくいくでしょうか?
- 例:
で呼び出される randomNeighbor
00000000000000000000000000000000010111101011110011000111010111
たとえば、
00000000000000000000000000000000010111101011110011001110010111
つまり、ハミング距離は 2 です。
octave - ベクトルのハミング重みを計算するには?
Matlab でベクトルのハミング重みを計算しようとしています。
ベクトルは次のとおりです。
ただし、これにより次の結果が得られますが、これは私が望むものではありません。
よろしければお役に立てれば幸いです。
c# - Int64 のハミング重み
設定されたビットをカウントするために Int64 にハミング重みアルゴリズムを適用する必要がある場合、BitMask がどのように見えるかを尋ねたいと思います。
Int32 の場合、次のようになります。
ただし、Int32 の長さは 4 バイトしかないため、Int64 の長さは 8 バイトです。
したがって、同じビットマスクは Int64 では機能しません。
Int64 値にハミング重みアルゴリズムを使用するための正しいビットマスクは何ですか?
編集: @just.ruから提供されたリンクを確認した後、私はこの解決策を使用しました: