Załóżmy, że podano mi liczb całkowitych o stałej szerokości (tzn. Mieszczą się one w rejestrze szerokości ), tak że ich suma również mieści się w rejestrze szerokości .w a 1 , a 2 , … a n a 1 + a 2 + ⋯ + a n = S w
Wydaje mi się, że zawsze możemy permutować liczby na tak, że każda suma prefiksu również mieści się w rejestrze szerokości .S i = b 1 + b 2 + ⋯ + b i w
Zasadniczo motywacją jest obliczenie sumy na maszynach o stałej szerokości bez martwienia się o przelanie liczb całkowitych na dowolnym etapie pośrednim.
Czy istnieje szybki (najlepiej liniowy czas) algorytm do znalezienia takiej permutacji (zakładając, że podano jako tablicę wejściową)? (lub powiedzieć, czy taka permutacja nie istnieje).
-2^(n-1)
do 2^(n-1)-1
. Wymaga to oczywiście uzupełnienia dwóch i dobrze zdefiniowanego zachowania przepełnienia, ale w języku takim jak C # powinno działać.