あなたの質問を理解しているかどうかはわかりませんが、ScalarEncoder が使用しているバケットについて考える必要があります。この例のようにn
が 12 (ビット数) でw
3 (バケットのサイズ) の場合、1 と 7 のように互いに近い数値が同じバケットに入れられるのは理にかなっています。この場合、利用可能なバケットは 10 個しかないようです。
111000000000
011100000000
001110000000
000111000000
000011100000
000001110000
000000111000
000000011100
000000001110
000000000111
したがって、1 ~ 10 の値はすべて同じバケット ( 111000000000
) で表されます。
のサイズn
を 100 に増やして 1 に移動w
した場合、1 から 100 までのすべての数値に独自のバケットがあります。
1:
1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2:
0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
3:
0010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
4:
0001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
等