Tôi cần hàm băm cho bảng tra cứu, để nếu giá trị của tôi từ 0 đến N, tôi cần hàm băm cung cấp cho tôi giá trị từ 0 đến n, là n < < N Một thông tin khác là tôi đã biết N trước.Hàm băm giá rất thấp
Tôi đã được investigatinv về hàm băm chi phí thấp khác nhau và tôi đã tìm thấy chỉ này:
h = z mod n range(z) - 0 to N, range(h) - 0 to n
hàm băm của tôi cần phải được thực hiện trong HW, vì vậy nó cần phải có một chi phí rất thấp. Bất cứ ai có thể giới thiệu bất kỳ công thức hoặc thuật toán khác ngoài những điều đơn giản ?. Khi tôi nói HW tôi có nghĩa là một thực sự thực hiện trong HW, và không hướng dẫn trong một bộ vi xử lý.
Cảm ơn bạn.
Cập nhật với các giải pháp
Cảm ơn tất cả các câu trả lời, tôi sẽ không chọn một yêu thích, bởi vì tất cả chúng đều giá trị ngang nhau tùy thuộc vào các đặc tính của ứng dụng đích.
Trang sau có nhiều triển khai chức năng băm mục đích chung có hiệu quả và thể hiện các va chạm tối thiểu: http://www.partow.net/programming/hashfunctions/index.html –