互換性のある 2 つの HyperLogLog オブジェクト間でユニオンを実行する場合、新しいエラーを発生させないロスレス ユニオンを実行するために最大バケットを使用することができます。
Union.Bucket[i] = Max(A.Bucket[i], B.Bucket[i])
ただし、交差を行う場合は、包含と除外の原則を使用する必要があります。
IntersectionCountEstimate = A.CountEstimate() + B.CountEstimate() - Union.CountEstimate()
バケットの最小値を使用しても有効な交差として機能しないのはなぜですか?
Intersection.Bucket[i] = Min(A.Bucket[i], B.Bucket[i])