Sei ein Alphabet, dh eine nicht leere endliche Menge. Eine Zeichenfolge ist eine endliche Folge von Elementen (Zeichen) aus . Als Beispiel ist das binäre Alphabet und ist eine Zeichenfolge für dieses Alphabet.Σ { 0 , 1 } 0110
Solange mehr als 1 Element enthält, spielt normalerweise die genaue Anzahl der Elemente in keine Rolle: Bestenfalls erhalten wir irgendwo eine andere Konstante. Mit anderen Worten, es spielt keine Rolle, ob wir das binäre Alphabet, die Zahlen, das lateinische Alphabet oder Unicode verwenden.Σ
Gibt es Beispiele für Situationen, in denen es darauf ankommt, wie groß das Alphabet ist?
Der Grund, warum ich daran interessiert bin, ist, dass ich zufällig auf ein solches Beispiel gestoßen bin:
Für jedes Alphabet definieren wir das zufällige Orakel als ein Orakel, das zufällige Elemente aus zurückgibt , sodass jedes Element die gleiche Chance hat, zurückgegeben zu werden (die Chance für jedes Element ist also ).O Σ Σ 1
Berücksichtigen Sie für einige Alphabete und - möglicherweise unterschiedlicher Größe - die Klasse der Orakelmaschinen mit Zugriff auf . Wir sind an den Orakelmaschinen in dieser Klasse interessiert, die sich genauso verhalten wie . Mit anderen Worten, wir möchten ein Orakel mit einer Turing-Maschine in ein Orakel umwandeln . Wir werden eine solche Turingmaschine als Konvertierungsprogramm bezeichnen.Σ 2 O Σ 1 O Σ 2 O Σ 1 O Σ 2
Sei und . Das Konvertieren von in ein Orakel ist einfach: Wir fragen zweimal ab und konvertieren die Ergebnisse wie folgt: , , , . Dieses Programm läuft eindeutig in -Zeit.Σ = { 0 , 1 , 2 , 3 } O Σ 1 O Σ 2 O Σ 1 00 → 0 01 → 1 10 → 2 11 → 3 O ( 1 )
Nun sei und . Für diese beiden Sprachen werden alle Konvertierungsprogramme in -Zeit ausgeführt, dh es gibt keine Konvertierungsprogramme von nach , die in -Zeit ausgeführt werden.Σ = { 0 , 1 , 2 } O ( ∞ ) O Σ 1 O Σ 2 O ( 1 )
Dies kann durch Widerspruch bewiesen werden: Angenommen, es gibt ein Konvertierungsprogramm von nach das in ausgeführt wird. Dies bedeutet, dass es ein so dass höchstens Abfragen an .O Σ 1 O Σ 2 O ( 1 ) d ∈ N C d Σ 1
d C ' C k C ' d - k C. kann in bestimmten Ausführungspfaden weniger als Abfragen durchführen. Wir können leicht ein Konvertierungsprogramm erstellen, das ausführt und verfolgt, wie oft eine Orakelabfrage durchgeführt wurde. Sei die Anzahl der Orakelabfragen. dann zusätzliche Orakelabfragen durch, verwirft die Ergebnisse und gibt zurück, was hätte.
Auf diese Weise gibt es genau Ausführungspfade für . Genau dieser Ausführungspfade wird in Folge zurückkehr . Jedoch nicht eine ganze Zahl ist , so dass wir einen Widerspruch haben. Daher gibt es kein solches Programm.C ' 1 C'02d
Allgemeiner , wenn wir Alphabete und mit und , dann gibt es genau dann ein Konvertierungsprogramm von nach wenn alle Die in der Primfaktorisierung von auftretenden Primzahlen erscheinen auch in der Primfaktorisierung von (daher spielen die Exponenten der Primzahlen in der Faktorisierung keine Rolle).Σ 2 | Σ 1 | = n | Σ 2 | = k O ≤ 1 O ≤ 2 n k
Eine Folge davon ist, dass wenn wir einen Zufallszahlengenerator haben, der eine binäre Zeichenfolge der Länge , wir diesen Zufallszahlengenerator nicht verwenden können, um eine Zahl in mit genau gleicher Wahrscheinlichkeit zu erzeugen .{ 0 , 1 , 2 }
Ich habe mir das obige Problem ausgedacht, als ich im Supermarkt stand und überlegte, was ich zum Abendessen haben sollte. Ich fragte mich, ob ich mit Münzwürfen zwischen Wahl A, B und C entscheiden könnte. Wie sich herausstellt, ist das unmöglich.