Rozwiązanie zagadki więzienno-patriotyczno-numizmatyczno-ornitologicznej

Tylko jeden Czytelnik wziął się z zagadką za bary, ale poległ srodze.

Zagadka na pierwszy rzut oka wydaje się kompletnie bez sensu: skoro szanse na wygraną / przegraną w jednym rzucie są po 50% oraz skoro każda z monet ma tyle samo punktów na plusie co na minusie, to oczywistym jest, że szanse na wygranie po stu rzutach są 50%, prawda?

A no prawda. Z tym, że gówno prawda.

W rzeczywistości możemy podciągnąć nasze szanse wygranej do 64%.

Gracie w kosza? Bo ja nie.

Ale na pewno oglądacie koszykówkę, prawda? Bo ja na przykład nie oglądam...

Ale słyszałem o dojeniu zegara. "Milking the clock" to stara koszykarska zasada mówiąca, że jak się wygrywa, trzeba grać ostrożnie, a jak się przegrywa, trzeba grać agresywnie, bardziej ryzykownie. Ostrożna gra na plusie zmniejsza bowiem odrobinę szanse utraty punktów, a agresywna na minusie - odwrotnie, zwiększa (też nieznacznie) szanse na odrobienie zaległości.

Okazuje się, że tak samo należy postępować z naszymi monetami. Jesteśmy na plusie - rzucamy jedynką. Na minusie - dwójką.

Ta prosta metoda sprawi, że szanse na wygraną wzrosną o 14% względem spodziewanych pięćdziesięciu procent (a jeżeli będziemy wydłużać grę tj. rzucać więcej niż 100 razy, docelowo nawet o 16%).

Niedowiarkom pokazuję prostą symulację w Excelu:

Najpierw formuły (ciągną się w dół daleko - czym dalej tym lepiej - u mnie około 100K wierszy):

... potem przykładowe wyniki. Komórki E4/E5 pokazują ile było przegranych / wygranych (procentowo)

Zadziwiające, prawda?

19 komentarzy

  1. Heh, pomyślałem o takim rozwiązaniu, ale stwierdziłem, że to za proste i raczej nie zrobi znaczącej różnicy. Czasem jednak lepiej nie ufać intuicji;-).

  2. Fajna zagadka, nie omieszkam skonfrontować z nią moich uczniów w najbliższej przyszłości. Dobrze, że polska blogosfera ma swojego Martina Gardnera. 🙂

    1. Jeżeli Twoi studenci lubią zagadki planimetryczne, niedługo pojawi się tu jedna całkiem ciekawa (i niezbyt trudna). Po drodze będzie też jedna łamigłówka szachowa.

  3. Ech, znowu za późno przeczytałem wpis. Dla tych, którzy wolą symulacje programistyczne – niezbyt ładny Python. Ciekawe czy się rozjedzie przy wklejaniu…
    UPDATE Niestety, zżera spacje, a te są kluczowe w Pythonie. 🙁

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-

    import random

    ile = 100000
    rzuty = 100
    win_count = 0
    lost_count = 0
    for count in range(ile):
    sum = 0
    for count in range(rzuty):
    if sum <= 0:
    wartosc = 2
    else:
    wartosc = 1
    r = random.randrange(2)
    if r == 0:
    sum += wartosc
    else:
    sum -= wartosc
    if sum > 0:
    win_count += 1
    else:
    lost_count += 1

    print("WINS: {}nLOST: {}".format(win_count, lost_count))

    1. Wrzucenie kodu w znaczniki PRE powinno zachować formatowanie.

      Sprawdźmy:

      for i in range(0, n):

         a = a + math.radians(angles[i])

         xaxis.append(xaxis[i]+math.cos(a))

         yaxis.append(yaxis[i]+math.sin(a))

        1. Po bliższych oględzinach – użyłem code nawet (ciężko nie użyć, bo charakterystyczna ikona w edytorze), tylko coś dziwnego się stało i dodał <p> jeszcze, pewnie przy wklejaniu, które… zakończyło blok code. Pewnie pusta linia tak wpłynęła.

  4. Nie wiem, dlaczego “poległem srodze”? Napisałem dokładnie takie samo wyjaśnienie, jak twoje, a mój wynik, z symulacji na 10^8 przypadków dał rezultat, już nie pamiętam, ale chyba 66,(6)%. Pytanie, czyja symulacja była poprawna oraz czy – gdyby przypadkiem twoja – to czy różnica 2% jest “srogim polegnięciem”?

    Poza konkurencją: byłoby przesympatycznie, gdyby po rozwiązaniu konkursu piękności, wszystkie nadesłane komentarze zostały uwolnione (najlepiej [dla ciebie] automatycznie). Na tym to cholerstwo polega.
    Jak to zrobić? – męcz się, ja nie wiem. Ale mamy 21 wiek i wiedz, że twoich przesympatycznych i przeinteligentnych czytelników to naprawdę interesuje. Jeśli masz problemy ze skryptami z BiG G, to zapytaj Admina wzorcowego, pod tym względem bloga, czyli Łamibloga z Polityki.pl. Oni jakoś bez problemu rozwiązują te zagadki Szeherezady, czy też Sphinksa (nie odróżniam, i tu, i tu podniecam się).
    Dla jasności właściwego działania:
    – Gospodarz bloga na bieżąco dopuszcza złe odpowiedzi lub luźne komentarze.
    – Wstrzymuje prawidłowe odpowiedzi do określonej daty, po której są publikowane

    Takie działanie zaspokaja wszystkich – i Gospodarza, i czytelników.
    Mam propozycję. Wejdź na https://penszko.blog.polityka.pl/, rozwiąż (lub nie) aktualne zadanie (trudne) i prześledź, jak to działa. W następną sobotę ujrzysz rozwiązania, a w międzyczasie, być może inne komentarze. To jest to. Jeśli chcesz zwiększyć klikalność, czytalność, zainteresowalność, to chyba jest właściwy kierunek. A że trudne? No, po to przecież istniejesz…

    Waldek

    P.S. Ciągle się czepiam… Ale robisz postępy 🙂 Jest git. Jeszcze trochę wysiłku i będzie perfect!

    1. “Nie wiem, dlaczego “poległem srodze”? Napisałem dokładnie takie samo wyjaśnienie, jak twoje”

      Nie wiem gdzie konkretnie to wyjaśnienie napisałeś, ale ja widzę tylko jedną wysłaną odpowiedź (nie twoją).

      Poza konkurencją: byłoby przesympatycznie, gdyby…

      Wszystkim dobrze nie zrobię. Na razie zostawiam jak jest, zobaczymy jak to będzie szło pięć zagadek później. Albo pięćdziesiąt.

      1. Automatyczne publikowanie komentarzy nie wydaje się trudne. WordPress daje sensowne API, którym się trochę bawiłem, więc przypuszczam, że główną trudnością jest określenie warunku, kiedy można publikować komentarze. Sam skrypt w Pythonie, uruchamiany np. co 1h to już pikuś. Do głowy przychodzą mi dwa warianty:
        1. Pojawił się nowszy wpis na blogu z tej samej kategorii/tym samym tagiem.
        2. Minęła zadana ilość dni od publikacji wpisu z zadanej kategorii/oznaczonego tagiem.
        Ewentualnie złączenie powyższych. I żaden wariant nie wydaje mi się idealny.

        Osobna kwestia to testy i dopieszczenie szczegółów tak, żeby np. nie publikowały się komentarze już odrzucone ręcznie, spam itp. Trzeba by się zorientować jak to WP oznacza w bazie…

        Gdyby API nie dawało rady pozostaje dostęp do bazy na żywo, co też trudne nie jest. A nawet może być prostsze w implementacji niż via API – jeden dobry SELECT w warunku do UPDATE załatwia wszystko.

        1. … i jeszcze żeby to się nie pogryzło z wpDiscuz, panie. O nie. Najpierw musiałbym się nauczyć w pehapie, za leniwy jestem. Zostawiam jak jest, ale jeżeli kiedyś napiszesz wtyczkę do opóźniania komentarzy, chętnie przetestuję 😉

          1. No cóż, miałem na myśli standardową konfigurację z włączoną moderacją. Wtedy by działało. Czy coś wpDiscuz zmienia – nie wiem i nie chcę wiedzieć. Przynajmniej dopóki nie używam albo nie płacą mi za to.

            Wtyczki nie będzie, PHP nie dotykam. I umiejętności, i klauzula sumienia. 😉 Ale jak pisałem – podchodziłbym od zupełnie innej strony do tematu. Nie wtyczka i nie PHP.

            1. Nauczyłem się włączać / wyłączać komentarze w pojedynczym wpisie, problem z głowy. Zagadka – wyłączam komentarze pod zagadką, zastępując je indywidualnym formularzem do wysyłania odpowiedzi. Jedyny “kłopot” jest taki, żeby zdążyć skopiować odpowiedzi czytelników do wpisu z rozwiązaniem zagadki zanim ten zostanie automagicznie opublikowany.

              1. Kłopot to chyba i niewielki, i niewiele znaczący. Przecież nic się nie stanie, jeśli (część) odpowiedzi czytelników pojawi się już po zamieszczeniu wpisu, po edycji.

                1. Jak najbardziej, stąd też cudzysłowy przy “kłopot” 😉 Ważniejsze żeby wyłączyć możliwość dodawania nowych odpowiedzi po opublikowaniu rozwiązania. Póki co robię to ręcznie (WPForms wymagają całkiem drogiej subskrypcji żeby to zautomatyzować). Może kiedyś znajdę tańszą / darmową alternatywę. Póki co zostawiam jak jest.

  5. Właśnie przemyślałem moją poprzednią wypowiedź.
    Lubię zagadkowe blogi i często aktywnie w nich uczestniczę. Jednak żaden nie jest absolutnie idealny, pod względem zadowolenia uczestników, za wyjątkiem tego, który zalinkowałem. Możesz go potraktować, jak wzorzec z Sèvres.
    Nie jest ważne złapanie króliczka, lecz by gonić go…

    1. Jak już wspomniałem, wszystkim dobrze nie zrobię. Ilu ludzi tyle opinii. Uważam, że i tak jest teraz lepiej niż było, bo ludzie nie podpowiadają sobie nawzajem (i nie przeszkadzają). Mogę na koniec publikować odpowiedzi innych ludzi, spoko. Akurat tym razem nie bardzo było *co* publikować, bo jedyna nadesłana odpowiedź była kompletnie bez sensu.

  6. “..że jak się wygrywa, trzeba grać ostrożnie, a jak się przegrywa, trzeba grać agresywnie, bardziej ryzykownie.”

    Tak też pomyslałem w tym przypadku, ale nie mogłem się zebrać do statystycznych obliczeń.

    Jako ciekawostkę wspomnę swoje doświadczenie z tą techniką.

    Rok 1980, Birminham (Anglia), Ladbrokes Casino.

    Zainteresował mnie Black Jack czyli oko. Minimalna stawka 1 funt, maximalna – 200 funtów. Zatem, jeśli po każdej przegranej podwoję stawkę, to mogę jeszcze próbować szczęścia 7 razy i wyjdę na plus.

    Po każdej wygranej wracałem do minimalnej stawki.

    Czy można przegrać 7 razy pod rząd? Oczywiście, można przegrać 1000 razy pod rząd, ale..

    Jeszcze jedno – krupier musiał grać według sztywnych zasad – jeśli uzbierał 16 lub mniej, musi ciągnąć następną kartę. Jeśli uzbierał 17 lub więcej, nie wolno mu ciągnąć dalej. Żeby oszczędzić sobie emocji zdecydowałem się na identyczną strategię.

    Rezultat, średnio, każdego wieczora, wygrywałem 8-12 funtów. To była prawie równowartość mojej miesięcznej pensji w Polsce.

    Jednak mądrość ludowa mówi, że kasyno musi zawsze wygrać i tak własnie sie stało, ale niemiało to nic wspólnego z rachunkiem prawdopodobieństwa.

Leave a Comment

Twój adres e-mail nie zostanie opublikowany.