해시함수를 여러 개 사용해서 블룸 필터를 구성하면 비트 필드의 길이를 상당히 줄일 수 있습
니다.
32
비트의 비트 필드에서
5
개의 해시함수를 사용하면
32
!/(
27
!
5
!)~
200
,
000
개의 그룹
을 만들 수 있습니다.
3
1
백만 개의 원소 중에서 평균
5
개의 원소가 동일한
5
비트 조합을 갖게
됩니다. 이런 식으로
25K
바이트를 전송하는 대신
4
바이트(
32
비트)만 전송할 수 있습니다.
이를 구현하는 코드는 다음과 같습니다. 간단히 하기 위해 이전 예와 동일한
10
비트 필드를 사
용하지만 관심 원소는 두 가지로 가정했습니다.
>>>fromhelperimport hash256, hash160
>>> bit_field_size =10
>>> bit_field =[0]* bit_field_size ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.