2009-07-17 7 views
10

Marvin Minsky zadał mi następujące pytanie podczas mojego egzaminu ustnego:Najkrótszy łańcuch bitów którego nieskończone powtarzanie jest inna po odwróceniu

jak mrówka idzie drukuje liczbę binarną (na przykład 101) za każdym razem robi krok. Jaka jest minimalna długość, w cyfrach, liczba binarna może być, aby można było określić, w którym kierunku mrówka podróżuje, nie patrząc na początek lub na koniec sznurka? Mrówka mówi ci liczbę binarną.

Przykład: liczba binarna mrówka jest 101, a więc mrówka pozostawia ślad, który wygląda tak: 101101101101101101101. pamiętać, że nie ma sposobu, aby powiedzieć, w jaki sposób mrówka porusza. W związku z tym ten konkretny numer nie działa (ale może istnieć trzy cyfrowy numer binarny, który robi).

Przykład: Liczba binarna mrówki wynosi 011, a zatem mrówka pozostawia ślad, który wygląda następująco: 011011011011011011. Ponownie, nie ma sposobu, aby powiedzieć, w którą stronę wędruje mrówka, nie patrząc na końce struny .

Jaka jest odpowiedź na to pytanie? Zauważ, że odpowiedź nie może być po prostu przykładem działającego numeru binarnego. Odpowiedź musi zawierać dowód, że żadna liczba binarna o długości mniejszej niż n-1 nie zadziała, gdzie n jest długością przykładowej liczby binarnej, która działa. Dowód z wyczerpującego wyliczenia jest w porządku, ale nieprzyjemny. :)

+4

Czy pytasz o rygorystyczny dowód matematyczny, czy po prostu upuszczasz imię? – gbn

+0

Dlaczego pierwszy ślad nie przechodzi "101101101101101"? –

+0

Głosowano, aby zamknąć jako "niezwiązane z programowaniem". Możesz wypróbować forum matematyczne na takie pytania: –

Odpowiedz

6

Innym rozwiązaniem byłoby odejście od liczb binarnych. Przeformułuj pytanie jako "Jaki jest najkrótszy możliwy wzorzec, który jest kierunkowy, jeśli wolno używać dowolnej liczby unikalnych symboli?"

Odpowiedź tutaj jest 3 (na przykład A, B; C lub #; &; @), ponieważ 2 nie działa. Więc kiedy masz wzór taki jak ABC, staje się jasne, w którym kierunku idzie mrówka.

Albo ... CABCABCABCABCAB ... (od lewej do prawej) Albo ... CBACBACBACBACBA ... (od prawej do lewej)

Teraz, ile cyfr binarnych potrzebujemy napisać wzór 3 symbole w Ternary (podstawa-3)?

Dwie cyfry binarne pozwalają napisać pojedynczy czwartorzędu (bazowy-4), cyfrę, która jest pierwszą zasadą wyższa lub równa 3.

tak: (2 cyfry-per-symbol) pomnożonej przez (3 symbole) = 6 Cyfry binarne.

+0

+1, bardzo intuicyjny. –

+1

Chociaż otrzymuję poprawną odpowiedź, nie jestem pewien, czy to dźwięk. Po pierwsze, z 2 bitami marnujesz czwarty możliwy symbol, więc "mogło być", że ogólny wzór może być reprezentowany w mniej niż 2 * bitach numSymbols. Po drugie, zmiany bitowe i jednobitowe oznaczają proste dwubitowe przerwy w kodzie: na przykład jeśli A = 00, B = 01, C = 10, to ABC ... to 000110 ..., które nie ma pożądanej właściwości. A = 00, B = 10, C = 11 to konkretne wystąpienie, które nie ma tego problemu, ale nie pokazałeś, że to działa ogólnie. –

+0

Rzeczywistą odpowiedzią jest AB AB AB. – Joshua

2

ChssPly76 ma poprawną odpowiedź (IMHO) w komentarzach powyżej.

6 cyfr, przykład 100110.

Powiązane problemy