4.2.2 Lấy một mẫu đại diện
các truy vấn của Phần 4.2.1, cũng như nhiều thắc mắc về số liệu thống kê của người sử dụng điển hình, có thể không được trả lời bằng cách lấy một mẫu truy vấn tìm kiếm của người dùng. Vì vậy, chúng ta phải phấn đấu để chọn 1/10th của người dùng, và thực hiện tất cả tìm kiếm của họ cho mẫu, trong khi không ai trong số các tìm kiếm từ người dùng khác. Nếu chúng ta có thể lưu trữ một danh sách của tất cả người dùng, và có hay không họ đang có trong mẫu, sau đó chúng ta có thể làm như sau. Mỗi lần truy vấn tìm kiếm đến trong dòng suối, chúng tôi tìm kiếm người sử dụng để xem có hay không họ đang có trong mẫu. Nếu như vậy, chúng ta thêm truy vấn tìm kiếm này để mẫu, và nếu không, sau đó không. Tuy nhiên, nếu chúng ta không có kỷ lục nào khi nhìn thấy người sử dụng này trước, sau đó chúng tôi tạo ra một số ngẫu nhiên từ 0 đến 9. Nếu số lượng là 0, chúng tôi thêm người dùng này vào danh sách của chúng tôi có giá trị "trong", và nếu con số này khác 0, chúng tôi thêm người sử dụng với giá trị "ra ngoài." Đó là phương pháp làm việc miễn là chúng ta có thể đủ khả năng để tiếp tục danh sách của tất cả người sử dụng và trong quyết định của họ ra / vào bộ nhớ chính, bởi vì không có thời gian để đi vào đĩa cho mỗi tìm kiếm mà đến. Bằng cách sử dụng một hàm băm, có thể tránh giữ danh sách của người sử dụng. Có nghĩa là, chúng ta băm mỗi tên người dùng đến một trong mười xô, từ 0 đến 9. Nếu người dùng băm để xô 0, sau đó chấp nhận truy vấn tìm kiếm này cho mẫu, và nếu không, sau đó không. Lưu ý chúng tôi không thực sự lưu trữ của người dùng trong xô, trong thực tế, không có dữ liệu trong các thùng ở tất cả. Hiệu quả, chúng ta sử dụng hàm băm như một máy phát điện số ngẫu nhiên, với các tài sản quan trọng là, khi áp dụng cho cùng một người dùng nhiều lần, chúng tôi luôn nhận được cùng một "" ngẫu nhiên "số. Đó là, không lưu trữ vào / ra quyết định đối với bất kỳ người sử dụng, chúng ta có thể tái tạo lại quyết định rằng bất cứ lúc nào một truy vấn tìm kiếm của người sử dụng mà đến. Nói chung, chúng ta có thể có được một mẫu bao gồm bất kỳ phần hợp lý a / b của người sử dụng bằng cách băm tên người dùng b xô, 0 đến b-1. Thêm các truy vấn tìm kiếm để mẫu nếu giá trị băm là ít hơn một.
đang được dịch, vui lòng đợi..