Nếu tôi hiểu định nghĩa của bạn, điều này có thể được thực hiện trong thời gian tuyến tính với không gian không đổi. Đây rõ ràng là giới hạn thấp nhất, bởi vì ít nhất chúng ta cần đọc toàn bộ đầu vào.
Câu trả lời được đưa ra trong câu hỏi này thỏa mãn.
Không thể chạy cái này với ít thời gian hoặc không gian hơn và việc thêm thời gian hoặc không gian là vô ích, vì vậy không có sự đánh đổi không gian thời gian ở đây. (Quan sát rằng , do đó, sự đánh đổi mà bạn quan sát không có bất thường, trong mọi trường hợp.)n=O(n/k)
Về câu hỏi chung của bạn, tôi không biết bất kỳ định lý hay nào sẽ giúp bạn chứng minh sự đánh đổi trong không gian. Câu hỏi này dường như chỉ ra rằng không có câu trả lời dễ dàng (đã biết). Về cơ bản:
Giả sử một số ngôn ngữ có thể quyết định được trong thời gian (sử dụng một số lượng không gian) và không gian s (sử dụng một lượng thời gian). Chúng ta có thể tìm thấy f , g sao cho L có thể quyết định bởi M chạy trong không gian f ( t , s ) và g ( t , s ) không?tsf,gLMf(t,s)g(t,s)
vẫn chưa được biết, và một câu trả lời mạnh mẽ sẽ giải quyết được rất nhiều vấn đề mở (đáng chú ý nhất là về SC), ngụ ý rằng không có giải pháp dễ dàng nào tồn tại.
EDIT: Ok, với sự lặp lại (nhưng tôi vẫn giả sử rằng với đầu vào có kích thước , số lượng tối đa có thể là n + 1 ).nn+1
Quan sát rằng thuật toán của chúng tôi cần có khả năng phân biệt giữa ít nhất câu trả lời có thể. Giả sử tại mỗi lần chuyển qua dữ liệu, chúng ta có thể nhận được tối đa k phần dữ liệu. Sau đó, chúng ta sẽ cần n / k vượt qua để phân biệt tất cả các câu trả lời. Giả sử k = n / s thì ta chạy trong nnkn/kk=n/sthời gian. Vì vậy, tôi nghĩ rằng điều này chứng minh những gì bạn muốn.nn/sn=sn
Khó khăn là trong việc chỉ ra rằng mỗi lần chúng ta chỉ nhận được bit. Nếu bạn cho rằng hoạt động hợp pháp duy nhất của chúng tôi là =, thì chúng tôi tốt. Tuy nhiên, nếu bạn cho phép các hoạt động phức tạp hơn, thì bạn sẽ có thể nhận được nhiều thông tin hơn.k