Giả sử tôi cho cố định chiều rộng số nguyên (tức là họ phù hợp trong một thanh ghi chiều rộng w ), một 1 , một 2 , ... một n như vậy mà số tiền của họ một 1 + một 2 + ⋯ + một n = S cũng phù hợp trong một thanh ghi chiều rộng w .
Dường như với tôi rằng chúng ta luôn có thể hoán vị các con số để sao cho mỗi tổng tiền tố S i = b 1 + b 2 + ⋯ + b i cũng phù hợp trong một thanh ghi chiều rộng w .
Về cơ bản, động lực là để tính tổng trên các máy đăng ký chiều rộng cố định mà không phải lo lắng về việc tràn số nguyên ở bất kỳ giai đoạn trung gian nào.
Có một thuật toán nhanh (tốt nhất là thời gian tuyến tính) để tìm một hoán vị như vậy (giả sử được đưa ra như là một mảng đầu vào)? (hoặc nói nếu một hoán vị như vậy không tồn tại).
-2^(n-1)
đến 2^(n-1)-1
. Tất nhiên nó đòi hỏi hai hành vi tràn bổ sung và được xác định rõ, nhưng trong một ngôn ngữ như C #, nó sẽ hoạt động.