Chúng ta đều biết rằng sự khác biệt của phần tử trong mô hình dựa trên so sánh không thể được thực hiện trong thời gian . Tuy nhiên, trên RAM từ, người ta có thể đạt được kết quả tốt hơn.
Tất nhiên, nếu giả sử sự tồn tại của hàm băm hoàn hảo có thể được tính theo thời gian tuyến tính, chúng ta sẽ có thuật toán thời gian tuyến tính cho tính khác biệt của phần tử: chỉ cần băm từng số một và trả về 1 nếu có xung đột.
Tuy nhiên, có hai vấn đề: 1) hầu hết các cấu trúc của hàm băm hoàn hảo mà tôi có thể tìm thấy tính ngẫu nhiên đã sử dụng và 2) Tôi không thể tìm thấy một cuộc thảo luận về thời gian tiền xử lý ở bất cứ đâu, tức là thời gian cần thiết để quyết định hàm băm nào sẽ diễn ra để sử dụng dựa trên bộ số đầu vào.
" Lưu trữ một bảng thưa thớt với thời gian truy cập trường hợp xấu nhất của " giải quyết vấn đề đầu tiên bằng cách cung cấp hàm băm với thời gian truy cập trong trường hợp xấu nhất, nhưng không nói gì về vấn đề thứ hai .
Vì vậy, để tóm tắt, đây là những gì tôi muốn:
Thiết kế một thuật toán cho một tập hợp gồm n số (mỗi số dài w bit) trên một từ RAM có độ dài từ w , tìm thấy hàm băm h : S → { 1 , Lỗi , m } trong thời gian O ( n ) , trong đó m = O ( n ) . Hàm h nên có thuộc tính cho mọi j ∈ { 1 , Rò , m } , số phần tử của ánh xạ tới j là hằng sốvàtính toán h ( i ) sẽ mấtthời gian O ( 1 ) trong mô hình RAM từ "hợp lý", nghĩa là mô hình không được phép đánh giá các chức năng "kỳ lạ" trên các từ trong O ( 1 ) thời gian.
Tôi cũng muốn biết liệu có các thuật toán để giải quyết tính khác biệt của phần tử trên từ - RAM hoàn toàn không sử dụng hàm băm hay không.