From 1a91dadfeed24be8ceda8636795ad776c658bb88 Mon Sep 17 00:00:00 2001 From: Paul Jungeblut Date: Tue, 25 Nov 2014 18:04:56 +0100 Subject: Josephus Problem --- sonstiges/sonstiges.tex | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'sonstiges') diff --git a/sonstiges/sonstiges.tex b/sonstiges/sonstiges.tex index 8960a8a..a0e2fb5 100644 --- a/sonstiges/sonstiges.tex +++ b/sonstiges/sonstiges.tex @@ -17,8 +17,16 @@ Wenn die Eingabe aus einem kleinen Intervall $\left[0, n\right)$ stammt ist Buck \subsubsection{LSD-Radixsort} \lstinputlisting{sonstiges/radixsort.cpp} -\subsubsection{Bit Operations} +\subsection{Bit Operations} \lstinputlisting{sonstiges/bitOps.cpp} -\subsubsection{Roman-Literal-Converting} +\subsection{Roman-Literal-Converting} \lstinputlisting{sonstiges/Roman.cpp} + +\subsection{Josephus-Problem} +$n$ Personen im Kreis, jeder $k$-te wird erschossen. +\begin{description} + \item[Spezialfall $k=2$:] Betrachte Binärdarstellung von $n$. Für $n = 1b_1b_2b_3..b_n$ ist $b_1b_2b_3..b_n1$ die Position des letzten Überlebenden. (Rotiere $n$ um eine Stelle nach links) + \item[Allgemein:] Sei $F(n,k)$ die Position des letzten Überlebenden. Nummeriere die Personen mit $0, 1, \ldots, n-1$. Nach Erschießen der $k$-ten Person, hat der Kreis noch Größe $n-1$ und die Position des Überlebenden ist jetzt $F(n-1,k)$. Also: $F(n,k) = (F(n-1,k)+k)\%n$. Basisfall: $F(1,k) = 0$. +\end{description} +\textbf{Beachte bei der Ausgabe, dass die Personen im ersten Fall von $1, \ldots, n$ nummeriert sind, im zweiten Fall von $0, \ldots, n-1$!} -- cgit v1.2.3