Opis: Są ludzie stojący w kręgu czeka na wykonanie. Odliczanie rozpoczyna się w pewnym punkcie koła i krąży po okręgu w ustalonym kierunku. W każdym kroku pewna liczba osób jest pomijana, a następna osoba jest wykonywana. Eliminacja przebiega wokół koła (które staje się coraz mniejsze, gdy usuwane są egzekucje), dopóki pozostanie tylko ostatnia osoba, której przyznano wolność.Josephus sekwencji
I Przeglądam ten "problem z Józefem", a hit w Wikipedii daje mi rozwiązanie do programowania dynamicznego: f(n,k)=((f(n-1,k)+k-1) mod n)+1, with f(1,k)=1
, ale to tylko daje ostatnią szansę na przetrwanie. Jak mogę uzyskać sekwencję wykonanych egzekucji? Powiedz: p (5, 3) = {3,1,5,2,4}.
Czy istnieje również rozwiązanie O(nlogn)
zamiast O(nk)
?
Interesujące pytanie. – deadlock