Swego czasu na jednej z rozmów kwalifikacyjnych dostałem bojowe zadanie by napisać pewien prosty programik. Prosty, ale nie trywialny.
Rozwiązanie dla małych N, czy raczej dla małego zakresu, tak powiedzmy do miliarda/rozmiaru pamięci miałem gotowe w ciągu minuty.
Pokazałem, zostałem pochwalony za chytrość ;-) i poproszony o przedstawienie rozwiązania, które nie byłoby ograniczone rozmiarem pamięci, a jedynie rozmiarem danych wejściowych.
Zacząłem kodować i utknąłem na zestawie warunków ;-)
Zapomniałem o starej dobrej FSM, Finite State Machine czy jak kto woli maszynie stanów skończonych. Okazało się, że będąc zestresowany nie umiałem połapać się w zawiłościach problemu ;-)
Mój mózg ewidentnie wolał się zajmować szukaniem tego tygrysa, którego się wystraszyłem niż jakimiś pierdołami ;-)
Jakoś wybrnąłem, ale gdybym pamiętał o użyciu w takim momencie FSM to byłoby dużo łatwiej.
FSM ma też inne zalety, można jej używać zawsze gdy jest dużo warunków, to zdecydowanie ułatwi ;-)
Pomaga też w przekazywaniu takich rzeczy jak algorytm nietechnicznym ;-)
Przydaje się też gdy dostajesz bojowe zadanie opracowania jakiegoś procesu ;-) Bo proces to też maszyna stanów :-)
OK, blogowanie z tramwaju jest trudne... ale możliwe dzięki mojemu programikowi :-)
Podobne postybeta
Tygrysy
"Stolik" ;-)
.NET jest dziwny
Dalsze zabawy z ePubGeneratorem :-)
HeapSort, a MergeSort i QuickSort :-) - od strony "chytrości" ;-)
Brak komentarzy:
Prześlij komentarz