summaryrefslogtreecommitdiff
path: root/content/other
diff options
context:
space:
mode:
Diffstat (limited to 'content/other')
-rw-r--r--content/other/josephus2.cpp6
-rw-r--r--content/other/other.tex4
2 files changed, 4 insertions, 6 deletions
diff --git a/content/other/josephus2.cpp b/content/other/josephus2.cpp
index 33544ea..1c4295d 100644
--- a/content/other/josephus2.cpp
+++ b/content/other/josephus2.cpp
@@ -1,5 +1,5 @@
-int rotateLeft(int n) { // Der letzte Überlebende, 1-basiert.
+ll rotateLeft(ll n) { // Der letzte Überlebende, 0-basiert.
int bits = __lg(n);
- n ^= 1 << bits;
- return 2 * n + 1;
+ n ^= 1ll << bits;
+ return n << 1;
}
diff --git a/content/other/other.tex b/content/other/other.tex
index 426875a..9f8cfce 100644
--- a/content/other/other.tex
+++ b/content/other/other.tex
@@ -86,8 +86,7 @@
$n$ Personen im Kreis, jeder $k$-te wird erschossen.
\begin{description}
\item[Spezialfall $\boldsymbol{k=2}$:] Betrachte $n$ Binär.
- 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)
+ Für $n = 1b_1b_2b_3..b_n$ ist $b_1b_2b_3..b_n0$ die Position des letzten Überlebenden.
\end{description}
\sourcecode{other/josephus2.cpp}
@@ -98,7 +97,6 @@
Also: $F(n,k) = (F(n-1,k)+k)\%n$. Basisfall: $F(1,k) = 0$.
\end{description}
\sourcecode{other/josephusK.cpp}
- \textbf{Beachte bei der Ausgabe, dass die Personen im ersten Fall von $\boldsymbol{1, \ldots, n}$ nummeriert sind, im zweiten Fall von $\boldsymbol{0, \ldots, n-1}$!}
\end{algorithm}
\begin{algorithm}[optional]{Zeileneingabe}