Pchełki Python: zagadka

Nadszedł czas na kolejną zagadkę. Tym razem zamiast uwalniać więźniów, mierzyć prędkości koni czy też pstrykać przełącznikami, zerkniemy sobie na pewną tajemniczą funkcję.

Zagadka brzmi: co robi poniższa funkcja?

Pytanie bonusowe: dlaczego poniższa funkcja działa poprawnie?

(kod jest w Pythonie, co zresztą wynika z tytułu dzisiejszego wpisu)

# POCZĄTEK KODU
import re

def funkcja_zagadka(n):
    return not re.match(r'^.?$|^(..+?)\1+$', '1' * n)
# KONIEC KODU

Jeżeli ktoś szuka podpowiedzi, to mogę udzielić takiej oto: powyższa funkcja – gdyby ją przełożyć na język zbieraczy jagód – jest odpowiednikiem gościa, który z zawiązanymi oczyma i ostrym atakiem sraczki zbiera jagody za pomocą koparki przemysłowej z zaprzężonymi do niej dzikimi wielbłądami. Gdyby istniały rankingi najgorszych sposobów zbierania jagód, facet nie miałby sobie równych 😉

Ale w końcu, po dłuższym czasie, nazbierałby tych jagód pełen koszyczek, prawda? A więc metoda działa.

Powyższa funkcja też działa.

Co więc ona robi i dlaczego?

Miłego główkowania!

(jeżeli nie chce Ci się kombinować samodzielnie, nie szukaj proszę odpowiedzi na Google – daj szansę innym!)

Autor: xpil

Po czterdziestce. Żonaty. Dzieciaty. Komputerowiec. Krwiodawca. Emigrant. Rusofil. Lemofil. Sarkastyczny. Uparty. Mól książkowy. Ateista. Apolityczny. Nie oglądam TV. Uwielbiam matematykę. Walę prosto z mostu. Gram na paru instrumentach. Lubię planszówki. Słucham bluesa, poezji śpiewanej i kapel a’capella. || Kliknij tutaj po więcej szczegółów ||

Dodaj komentarz

2 komentarzy do "Pchełki Python: zagadka"

Powiadom o
avatar
Sortuj wg:   najnowszy | najstarszy | oceniany
Butter
Gość

zakładając, że \1+ to ciąg jedynek, a nie pierwsza grupa, to funkcja zwróci false dla dowolnej cyfry [n=0,1] a potem dla dowolnej liczby 3 lub więcej cyfrowej, dla której ostatnie n-2 cyfry to 1

wpDiscuz