2009-07-17 4 views
10

Marvin Minsky hat mich gebeten, die folgenden Fragen während meiner mündlichen Prüfung:Kürzeste bitstring deren unendliche Wiederholung unterscheidet sich nach der Umkehrung

Wie eine Ameise geht es eine binäre Zahl druckt (zum Beispiel 101) jedes Mal, dauert es einen Schritt zurück. Was ist die minimale Länge, in Ziffern, kann die binäre Zahl sein, damit man sagen kann, in welche Richtung die Ameise reist, ohne auf den Anfang oder das Ende des Strings zu schauen? Die Ameise sagt dir die Binärzahl.

Beispiel: Die binäre Zahl der Ameise ist 101, und daher lässt die Ameise eine Spur, die wie folgt aussieht: 101101101101101101101. Beachten Sie, dass es keine Möglichkeit, die Art und Weise zu sagen, ist die Ameise fährt. Daher funktioniert diese bestimmte Zahl nicht (aber es kann eine dreistellige Binärzahl geben, die das tut).

Beispiel: Die Binärzahl der Ameise ist 011 und die Ameise hinterlässt eine Spur, die folgendermaßen aussieht: 011011011011011011. Auch hier gibt es keine Möglichkeit zu sagen, auf welche Weise die Ameise reist, ohne die Enden der Kette zu betrachten .

Was ist die Antwort auf diese Frage? Beachten Sie, dass die Antwort nicht nur ein Beispiel für eine funktionierende Binärzahl sein kann. Die Antwort muss einen Beweis enthalten, dass keine Binärzahl mit einer Länge von weniger als n-1 funktioniert, wobei n die Länge der Beispiel-Binärzahl ist, die funktioniert. Ein Beweis durch erschöpfende Aufzählung ist in Ordnung, aber unangenehm. :)

+4

Sie fragen nach einem strengen mathematischen Beweis, oder einfach Namen fallenlassen? – gbn

+0

Warum geht die erste Spur nicht "101101101101101"? –

+0

Zum Schließen als "nicht programmierungsbezogen" geschlossen. Vielleicht möchten Sie ein mathematisches Forum für Fragen wie diese versuchen –

Antwort

6

Ein weiterer Ansatz von Binärzahlen abzuweichen wäre. Umformulieren Sie die Frage wie folgt: "Was ist das kürzeste mögliche Richtungsmuster, wenn man eine beliebige Anzahl eindeutiger Symbole verwenden darf?"

Die Antwort hier ist 3 (zum Beispiel A; B; C oder #; &; @) da 2 nicht funktioniert. Wenn Sie ein Muster wie ABC haben, wird klar, in welche Richtung die Ameise läuft.

Entweder ... CABCABCABCABCAB ... (von links nach rechts) Or ... CBACBACBACBACBA ... (von rechts nach links)

Nun, wie viele Binärziffern brauchen wir ein Muster schreiben von 3 Symbolen in Ternary (Basis-3)?

zwei binäre Ziffern können Sie eine einzige Quaternary (base-4) Stelle schreiben, die die erste Basis höher als oder gleich 3

ist somit: (2 Ziffern-per-Symbol), multipliziert mit (3 Symbole) = 6 Binärziffern.

+0

+1, sehr intuitiv. –

+1

Während dies die richtige Antwort bekommt, bin ich mir nicht sicher, dass es so klingt. Erstens verschwenden Sie mit 2 Bits das vierte mögliche Symbol, so dass es "hätte sein können", dass das Gesamtmuster in weniger als 2 * numSymbols Bits dargestellt werden kann. Zweitens bedeuten die bitweisen Umkehrungen und Ein-Bit-Verschiebungen einen einfachen Zwei-Bit-Code-Bruch: Wenn beispielsweise A = 00, B = 01, C = 10, dann ist ABC ... 000110 ..., was nicht die gewünschte Eigenschaft hat. A = 00, B = 10, C = 11 ist eine bestimmte Instanz, die dieses Problem nicht hat, aber Sie haben nicht gezeigt, dass dies im Allgemeinen funktioniert. –

+0

Die tatsächliche Antwort ist AB AB AB. – Joshua

2

ChssPly76 hat die richtige Antwort (IMHO) in den Kommentaren oben.

6 Ziffern, zB 100110.