Wir definieren eine Rekursion für die Anzahl der Strings der Länge $n$ über $\{2,3\}$ ohne „222.

["Rekursion zur Bestimmung der Anzahl gültiger Strings der Länge $n$ über ${2,3}$ ohne das Substring „222“", "---", "Einleitung", "Die Anzahl gültiger Strings, die nur die Ziffern 2 und 3 verwenden und das Substring „222“ vermeiden, lässt sich elegant mit rekursiven Methoden analysieren. Dieses Problem veranschaulicht, wie Rekursion effizient eingesetzt werden kann, um komplexe Zählprobleme mit Einschränkungen zu lösen. In diesem Artikel definieren wir präzise, was wir unter einer Rekursion in diesem Kontext verstehen und zeigen Schritt für Schritt, wie die Anzahl solcher Strings der Länge $n$ berechnet wird.", "---", "Was bedeutet Rekursion in diesem Zusammenhang?", "In der Informatik bezeichnet Rekursion eine Methode, bei der eine Funktion sich selbst auf kleinere Teilprobleme anwendet, um ein größeres Problem zu lösen. Für Zählprobleme wie die Anzahl gültiger Strings ist Rekursion besonders geeignet, weil die Struktur der gültigen Strings sich naturdebug {repetitive Muster} mit Bedingungen entlang der Zeichenpositionen abbilden lässt.", "Die Schlüsselidee ist:\nDie Anzahl gültiger Strings der Länge $n$ hängt von den gültigen Strings kürzerer Längen ab, insbesondere solchen, die durch Hinzufügen einer Ziffer 2 oder 3 gebildet werden können, ohne das verbotene Substring „222“ zu erzeugen.", "---", "Formale Definition des Problems", "Sei $f(n)$ die Anzahl aller Strings der Länge $n$, die nur die Ziffern 2 und 3 verwenden und das Substring „222“ nicht enthalten.", "Ein gültiger String darf bei keinem der $n$ Positionen drei aufeinanderfolgende 2er enthalten.", "---", "Rekursiver Aufbau von $f(n)$", "Um eine Rekursion aufzustellen, untersuchen wir, wie ein gültiger String der Länge $n$ aus kürzeren gültigen Strings konstruiert werden kann.", "### Ansatz: Zustandsbasiertes Zählen", "Statt jeden String explizit aufzuzählen, definieren wir rekursive Beziehungen basierend auf dem letzten Teil des Strings. Wir betrachten endliche Zustände, die den letzten Teil des Strings repräsentieren, um sicherzustellen, dass keine drei aufeinanderfolgende 2er entstehen.", "Diese endlichen Zustände klassifizieren den String nach seiner letzten Zeichenfolge, die zwei oder weniger 2er enthält:", "- $a(n)$: Anzahl gültiger Strings der Länge $n$, die mit 3 enden (oder gar leer/inhaltlos, ab Anfang).\n- $b(n)$: Anzahl gültiger Strings der Länge $n$, die mit genau einer 2 enden.\n- $c(n)$: Anzahl gültiger Strings der Länge $n$, die mit genau zwei aufeinanderfolgenden 2er enden.", "Der String darf niemals mit drei 2ern enden, das wäre ungültig.", "Die Gesamtzahl ist:\n[\nf(n) = a(n) + b(n) + c(n)\n]", "### Rekursive Übergänge", "Wir leiten die Rekursionsformeln aus der Struktur valider Erweiterungen ab:", "- Ein String, der mit 3 endet ($a(n)$), kann gebildet werden, indem man 3 an jeden gültigen String der Länge $n-1$ anhängt – unabhängig davon, wie dieser endet:\n[\na(n) = f(n-1) = a(n-1) + b(n-1) + c(n-1)\n]", "- Ein String, der mit genau einer 2 endet ($b(n)$), muss mit 2 enden, aber vorausgehen darf keine 2. Er entsteht also durch Anhängen von 2 an einen String, der mit 3 oder leer endet – also an $a(n-1)$.\n[\nb(n) = a(n-1)\n]", "- Ein String, der mit genau zwei 2ern endet ($c(n)$), entsteht, indem man an einen String, der zweimal 2er enthält (also $c(n-1)$), noch eine 2 anhängt.\n[\nc(n) = b(n-1)\n]", "---", "Vollständige Rekursionsgleichung", "Setzen wir ein:\n[\n\begin{align}\na(n) &= f(n-1) = a(n-1) + b(n-1) + c(n-1) \\nb(n) &= a(n-1) \\nc(n) &= b(n-1) \\n\Rightarrow f(n) &= a(n) + b(n) + c(n) \\n&= [f(n-1)] + [a(n-1)] + [b(n-1)]\n\end{align}\n]", "Ersetzen wir $a(n-1)$ und $b(n-1)$:", "Da $b(n-1) = a(n-2)$ und $a(n-1) = f(n-2)$, gilt:\n[\nf(n) = f(n-1) + f(n-2) + a(n-1)\n]", "Und $a(n-1) = f(n-2)$, also:\n[\nf(n) = f(n-1) + f(n-2) + f(n-2) = f(n-1) + 2f(n-2)\n]", "Alternativ, direkt aus den Definitionen:\nDa $c(n) = b(n-1) = a(n-2)$ und $a(n-1) = f(n-2)$, folgt:\n[\nf(n) = a(n) + b(n) + c(n) = f(n-1) + a(n-1) + b(n-1) = f(n-1) + f(n-2) + a(n-2)\n]", "Ein direkter, kompakter Rekursions beginnend bei kleinen $n$ ist jedoch am besten:", "Aus den ersten Werten folgt die Rekursion:\n[\nf(n) = f(n-1) + f(n-2) + f(n-3) \quad \ ext{für } n \geq 4\n]", "Beweis für diese Rekursion:\nEin gültiger String der Länge $n$ endet mit:\n- …3 (Anhängen von 3 an jeden gültigen String der Länge $n-1$) → $f(n-1)$\n- …23 (Anhängen von 23, aber nur wenn letzter Teil nicht 222 wird, sichergestellt durch vorherige 3) → entspricht Strings, die mit 2 enden, aber nicht zweimal voraus 2 → führt zu $a(n-2)$ usw.,\ndoch eine direkte Zusammenfassung ergibt sich aus:\n[\nf(n) = f(n-1) + f(n-2) + f(n-3)\n]", "Denn:\n- Ende mit 3: $f(n-1)$\n- Ende mit 23 (aber nicht 222): erst durch Anhängen von 3 an gültige Zeiten, aber präziser: Strings, die mit genau einer 2 enden ($b(n)$), können nur durch Hinzufügen von 2 zu $a(n-1)$ (also nicht mit 2 vorher) → also nur aus Strings, die mit 3 enden, $a(n-1)$\nBesser:\nDie direkte Herleitung zeigt, dass die Anzahl der gültigen Strings der Länge $n$ gegeben ist durch:\n[\nf(n) = f(n-1) + f(n-2) + f(n-3), \quad \ ext{mit } f(0) = 1, f(1) = 2, f(2) = 4\n]", "Begründung der Anfangswerte:\n- $n=0$: leerer String – 1 Möglichkeit → $f(0)=1$\n- $n=1$: „2“, „3“ → beide gültig → $f(1)=2$\n- $n=2$: „22“, „23“, „32“, „33“ – alle gültig (kein 222) → $f(2)=4$\n- $n=3$: Alle 8 Strings aus 2×2×2, aber „222“ ist ungültig → $f(3)=8-1=7$", "Prüfen:\n$f(3) = f(2)+f(1)+f(0) = 4 + 2 + 1 = 7$ ✓", "---", "Zusammenfassung der Rekursion", "[\n\begin{align}\nf(n) &= f(n-1) + f(n-2) + f(n-3) & \ ext{für } n \geq 3, \\nf(0) &= 1, \\nf(1) &= 2, \\nf(2) &= 4.\n\end{align}\n]", "---", "Effiziente Berechnung", "Diese lineare homogene Rekursion dritten Grades kann iterativ oder mit Matrix-Exponentiation effizient berechnet werden (z.B. in $O(n)$ Zeit mit Memoisation $O(1)$ pro Schritt). Sie eignet sich auch für dynamische Programmierung.", "---", "Anwendung und Nutzen", "Solche rekursiven Zählmodelle kommen in der Automatentheorie, formalen Sprachen, Codierungstheorie und kombinatorischer Analysis vor. Das verbale Unterdrücken des verbotenen Substrings „222“ als rekursive Nebenbedingung demonstriert, wie Einschränkungen elegant in mathematische Modelle eingebettet werden.", "---", "Fazit", "Die Rekursion zur Bestimmung der Anzahl gültiger Strings der Länge $n$ über ${2,3}$ ohne „222“ zeigt die Kraft strukturierter, zustandsbasierter Modelle. Durch feine Aufteilung in Teilzustände mittels $a(n), b(n), c(n)$ und deren Zusammenspiel über eine einfache Rekursionsformel $f(n) = f(n-1) + f(n-2) + f(n-3)$ lässt sich ein komplexes Muster sauber erfassen. Dies ist ein Paradebeispiel dafür, wie Rekursion systematisch zur Lösung kombinatorischer Probleme mit Einschränkungen genutzt wird.", "---", "Keywords:\nRekursion, Zählen gültiger Strings, Stringrekursion, ${2,3}$, Rekursionsformel, verbotenes Substring, Kombinatorik, lineare Rekursion, dynamische Programmierung, rekursiver Aufbau, Mathematikgesetz, Informatik, rekursive Zustände", "---", "Weiterführende Links:\n- Lineare Rekursionen in der Kombinatorik\n- Zählmodelle mit Angstparametern (Constraint Automata)\n- Rekursionsstrukturen anhand konkreter Beispiele", "---", "autor: Experte für algorithmische Mathematik und rekursive Modellierung\nLetzte Aktualisierung: April 2025"]









