Przeskocz do treści

Delta mi!

Wielkie granie

O pewnej sztuczce

Michał Skrzypczak

o artykule ...

  • Publikacja w Delcie: marzec 2008
  • Publikacja elektroniczna: 20-12-2010
  • Autor: Michał Skrzypczak
    Afiliacja: student, Uniwersytet Warszawski, Wydział Matematyki, Informatyki i Mechaniki

Jakiś czas temu pokazano mi pewną sztuczkę karcianą. Pokazywały ją dwie osoby, Karol i Marcin. Najpierw Karol dostał pięć kart wylosowanych z talii. Nie pokazując ich nikomu, wybrał jedną z nich i ukrył przed wszystkimi.Pozostałe cztery ułożył w wybranej przez siebie kolejności i pokazał Marcinowi. Wtedy ten bezbłędnie odgadł, jaka jest piąta, ukryta karta.

obrazek

Obliczmy. Marcinowi została zaprezentowana pewna permutacja czteroelementowego zbioru kart. Takich permutacji jest math. Następnie odgadł pozostałą, ukrytą kartę. W talii są math karty, on widzi math z nich, więc pozostaje math możliwości. Czyli Marcin dostał math bitów informacji, a do podjęcia decyzji potrzebuje math bitów. Proste odejmowanie, math, dowodzi, że Marcin ma dokładnie o bit informacji za mało!

W czasie gdy liczyliśmy, oni pokazali sztuczkę następnych kilka razy i zawsze się udawała. W naszych obliczeniach pominęliśmy fakt, że Karol własnoręcznie wybierał tę jedną kartę spośród pięciu. Ale jak wybór Karola może przekazać bit informacji Marcinowi?

Poniżej zaprezentowane jest przykładowe rozwiązanie, jednak przed jego przeczytaniem polecam poszukać własnego.

Rozwiązanie okazuje się (jak zwykle) proste, chociaż (jak zwykle) trudno na nie wpaść. Najpierw opiszę działanie od strony Karola. Dostałem pięć kart. Wśród nich któryś kolor musi występować przynajmniej dwa razy. Powiedzmy, że ten kolor to pik i mamy do czynienia z dwiema kartami w tym kolorze (jeżeli jest ich więcej, to bierzemy pod uwagę tylko dwie). Mówiąc nieściśle, wybieram tę z nich, od której jest bliżej do drugiej, idąc cyklicznie w górę (2, 3, …król, as, 2, 3,...). Ściślej, kartom od dwójki do asa przypiszmy liczby od math do math i liczby odpowiadające naszym dwóm pikom oznaczmy mathmath. Oznaczmy math przez mathmath przez math. Oczywiście, math, obie są dodatnie, więc któraś z nich jest mniejsza niż math. Z symetrii mogę założyć, że math. W takim przypadku wybieram kartę odpowiadającą liczbie  math i mam gwarancję, że druga z nich nie jest dalej niż math kart „do przodu” (bo math). Teraz pora na permutację, którą przekażę Marcinowi. Pozostały z dwóch pików kładę jako pierwszy, pozostałe trzy karty permutuję według ustalonego algorytmu, tak by zakodować liczbę math. To się uda, ponieważ permutacji jest math, a  math jest jedną z liczb math.

Przykładowa metoda kodowania liczb za pomocą permutacji może wyglądać następująco. Mamy do użycia math kart i chcemy za ich pomocą zakodować jedną spośród liczb math, oznaczmy ją math. Przyjmijmy, że karty te są posegregowane według ich rangi math . Weźmy kartę math i połóżmy ją jako pierwszą w permutacji. Następnie za pomocą pozostałych kart zakodujmy indukcyjnie liczbę math jako permutację pozostałych math kart. Oczywiście, indukcja ta się kończy, gdy mamy zakodować pojedynczą kartą liczbę math, co wykonujemy, po prostu kładąc kartę na stole.

Zadanie Marcina, czyli odkrycie schowanej karty, jest prostsze. Wie, że piąta karta jest takiego koloru jak pierwsza w kolejności. Wystarczy więc, że odkoduje zakodowaną liczbę math na podstawie permutacji ostatnich trzech kart. Wtedy pójdzie o  math kart „w górę”, począwszy od pierwszej w kolejności i już wie, jaka karta została ukryta.

Przedstawię teraz, jak działa opisana sztuczka w konkretnym przypadku. Załóżmy, że Karol dostał następujące karty: math . Jak widać, mamy dwie karty w kolorze karo ( math ), dlatego – zgodnie z przyjętym algorytmem – którąś z nich będziemy kodować. Pomiędzy trójką a asem jest math kart ( math ), natomiast pomiędzy asem a trójką tylko jedna ( math). Dlatego to math chowamy. Oczywiście, najpierw kładziemy na stole asa karo, jako pierwszą kartę, następnie pozostałe trzy sortujemy według rangi: math . Chcemy zakodować liczbę math, ponieważ idąc od asa do trójki, trzeba zrobić dwa kroki ( math ). Dlatego najpierw kładziemy math kartę, czyli math , następnie za pomocą kart math , kodujemy liczbę math, czyli kładziemy następnie kartę math , no i na koniec pozostałą math . Ostateczna kolejność to math .

Otrzymawszy takie informacje, Marcin przystępuje do dzieła. Od razu wie, że kolor poszukiwanej karty to math . Teraz pozostaje zdekodować liczbę math. Ponieważ jako pierwsza wśród kart kodujących permutację jest najmniejsza z nich, więc poszukiwana liczba to math lub math. Następnie występuje starsza spośród pozostałych dwóch kart, więc szukana liczba to math. Poczynając od pierwszej karty, czyli math , odliczamy math w górę i uzyskujemy wynik: math .

Znamy rozwiązanie, ale czy jest ono optymalne? Widzimy, że gdy więcej niż dwie karty będą tego samego koloru, to w sposób dowolny wybieramy, którymi dwiema z nich się zająć. Może dałoby się jeszcze więcej informacji przekazać tym wyborem? Karol najpierw wybiera jedną kartę z pięciu, potem wybiera jedną permutację z dwudziestu czterech, w sumie ma aż math różnych sposobów ułożenia kart. Gdyby udało się w pełni z tego bogactwa skorzystać, Marcin byłby w stanie odgadnąć jedną ze  math kart, więc cała talia mogłaby się składać ze  math kart!

Przejdźmy do przypadku ogólnego. Przez math oznaczmy liczbę kart losowanych z talii. Karol wybiera jedną z  math kart, potem jedną z  math permutacji, w sumie ma math różnych możliwości, więc niech nasza talia ma math kart oznaczonych math. Oznaczmy wylosowane karty math, tak by math. Niech math. Do odłożenia na bok wybieramy kartę math. Od teraz wszystkim kartom w talii, z pominięciem tych math kart, jakie mamy na ręku, nadajemy w myślach nowe numery od math do math, tak by zachować kolejność. Nowy numer karty math oznaczamy przez math . Zauważmy, że dokładnie math kart w naszym ręku ma numery mniejsze od math, więc podczas przenumerowania karta math spadnie dokładnie o  math pozycji, wobec czego math . Za pomocą ustalonego algorytmu permutowania tak ustawiamy pozostałe na ręku karty, by kodowały math i pokazujemy je Marcinowi.

Marcin widzi wszystkie math kart z naszej ręki, więc jest w stanie tak samo jak my przenumerować wszystkie karty, których nie widzi. Ponadto zna sumę math. Zauważmy, że math. Odkodowując liczbę z permutacji, Marcin zna math. Skoro math , to math. Teraz już prosto, znając math i karty na naszym ręku, Marcin odwraca proces przenumerowywania i poznaje math.

A dlaczego nie da się lepiej? Może ograniczenie math na liczebność talii jest zbyt rygorystyczne? Postarajmy się to ściśle udowodnić. Ustalmy, że talia składa się z  math kart. Wtedy Karol jest postawiony wobec jednej z  math sytuacji, podejmuje swoje decyzje i przekazuje dane Marcinowi. Ten może dostać od niego dokładnie math różnych układów ( math elementowe, uporządkowane podzbiory zbioru math elementowego). Przypuśćmy, że math Wtedy, z zasady szufladkowej Dirichleta, niezależnie od sposobu przyporządkowywania, będzie istniał jakiś układ czterech kart, jakie Karol pokazał Marcinowi, któremu to układowi odpowiada więcej niż jeden układ pięciu kart, jakie dostał na początku Karol. Czyli nie każdy układ, jaki dostał na początku Karol, Marcin będzie mógł jednoznacznie odtworzyć. Wobec czego, by sztuczka się udała, musi być math. Czyli math, zatem math, co daje math, więc math. Udowodniliśmy, że opisany powyżej schemat jest optymalny.

Sztuczkę tę wymyślił w latach dwudziestych XX wieku matematyk amerykański Wiliam Fitch Chaney, Jr. (ur. 1894, zm. 1974). Już w dzieciństwie interesował się sztuczkami magicznymi i ćwiczył swe zdolności manualne, by zabawiać znajomych i rodzinę różnymi trickami. Później, gdy został nauczycielem w Tufts College na początku lat dwudziestych, wykorzystywał swe umiejętności, by zadziwić i zainteresować uczniów lekcją. Po raz pierwszy jego sztuczka została opublikowana w książce Wallaca Lee „Wallace Lee’s Magic Studio”. Od tego czasu pierwotna „five card trick”, wykorzystująca zwykłą 52-kartową talię, doczekała się wielu odmian, począwszy od omówionego rozszerzenia na talię 124-kartową, przez ogólny przypadek math kart, wersję, gdy część kart może leżeć odwrócona, lub możliwość chowania więcej niż jednej karty. Aby poznać więcej wersji, polecam zapoznanie się z artykułem „Fitch Cheney’s Five Card Trick” w  Mathematical Association of America Math Horizons z lutego 2003 r.