Tôi đang tìm kiếm một thuật toán một lượt tính toán tính chẵn lẻ của một hoán vị. Tôi giả sử rằng một hoán vị đầu vào được đưa ra bởi luồng . Đầu ra phải là chẵn lẻ của hoán vị. Câu hỏi tôi quan tâm đến việc sử dụng bao nhiêu bộ nhớ xác định thuật toán xác định. Có bất kỳ thuật toán ngẫu nhiên cho vấn đề?
Tôi biết rằng số lượng nghịch đảo tính toán trong một lần sử dụng bộ nhớ . Giới hạn trên có thể dễ dàng thu được với bất kỳ BST nào. Giới hạn dưới được trình bày ở đây: http://citeseerx.ist.psu.edu/viewdoc/versions?doi=10.1.1.112.5622
Than ôi, bằng chứng về giới hạn dưới trong bài báo không thể được mở rộng cho trường hợp tương đương (hoặc nó không quá rõ ràng đối với tôi).
Ngoài ra, tôi biết rằng tính toán tương đương trong một không gian nhỏ với quyền truy cập ngẫu nhiên vào một hoán vị có thể được thực hiện trong thời gian và bộ nhớ O ( log 2 n ) bằng thuật toán xác định hoặc trong thời gian O ( n log n ) và O ( n log n ) và O ( n log n ) log n ) bộ nhớ bằng cách ngẫu nhiên một. Xem http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.2256
Ý tưởng chính là tính chẵn lẻ của một hoán vị có thể được tính theo công thức , trong đó c là số chu kỳ và n là kích thước. Các tác giả thực hiện phân rã chu kỳ của một hoán vị. Vì vậy, người ta có thể dễ dàng tính toán số lượng chu kỳ.
Có ai biết một thuật toán hiệu quả hoặc bị ràng buộc thấp hơn trên bộ nhớ để tính toán tương đương trong mô hình phát trực tuyến không? Các thuật toán ngẫu nhiên tốt hơn so với tiền ngẫu nhiên cũng thú vị đối với tôi.