Kilka dni temu wrzuciłem tu zagadkę o dwóch klepsydrach:
Za bary z zagadką wziął się wyłącznie Butter, który podał poprawne rozwiązanie:
- startujemy 8 i 5
- kończy się 5, w 8ce pozostały 3 minuty.
- odwracamy 5ke
- kończy się 8ka, w 5ce pozostały 2 minuty
- -> start pomiaru
- kończymy 5ke [2 minuty]
- dwie pełne 5ki.
Rozwiązanie Buttera jest poprawne, ponieważ spełnia warunki zagadki: za pomocą dwóch podanych klepsydr udało się odmierzyć zadany kawałek czasu.
Rozwiązanie to jest jednak nieoptymalne, ponieważ pomiar czasu rozpoczynamy dopiero w ósmej minucie - inaczej mówiąc musimy odczekać osiem minut, żeby zacząć odmierzać czas. Całość zajmie nam więc dwadzieścia minut: osiem minut czekania plus dwanaście minut pomiaru.
Da się krócej!
Oto rozwiązanie optymalne, w którym czas potrzebny na odmierzenie dwiema klepsydrami dwunastu minut wynosi dokładnie dwanaście minut:
- Startujemy obydwie klepsydry.
- Upłynęło 5 minut. Piasek w piątce kończy się. Obracamy piątkę. W ósemce pozostały jeszcze trzy minuty piasku.
- Upłynęło 8 minut. Piasek w ósemce kończy się. Piątka "leci" już trzy minuty, więc zostały tam jeszcze dwie minuty piasku. Obracamy ósemkę.
- Upłynęło 10 minut. Piątka dobiega końca po raz drugi. W ósemce mamy jeszcze sześć minut (dwie minuty się przesypały). OBRACAMY ÓSEMKĘ.
- Upłynęło 12 minut. Ósemka dobiega końca.
Cały trick polega więc na tym, żeby wykorzystać część piasku w ósemce ZANIM ta się skończy.
Oczywiście powyższe rozwiązanie ma jedną wadę: pomimo tego, że jest optymalne, jest NUDNE.
Jak rozwiązać zagadkę w sposób bardziej interesujący?
Cóż. Po pierwsze zauważamy, że klepsydry nigdy nie są napełnione do końca: w każdej z nich jest sporo wolnego miejsca.
Jeżeli klepsydry dają się otworzyć (a więc nie są wykonane z jednolitego kawałka szkła, tylko mają zdejmowane pokrywy), możemy zrobić tak:
- Zdejmujemy pokrywę z ósemki. Pozostawiamy ósemkę "otwartym" końcem do góry.
- Obracamy obydwie klepsydry. Piasek zaczyna się wysypywać z ósemki.
- Po wyczerpaniu piasku w piątce obracamy ósemkę z powrotem otwartym końcem do góry, zamykamy ósemkę pokrywą.
- Zamiast ósemki mamy teraz trójkę, za pomocą której łatwo odmierzymy dwanaście minut.
Zagadka o klepsydrach została po raz pierwszy zadana podczas interview o pracę w pewnym dużym amerykańskim banku.
Duże firmy lubią testować "elastyczność intelektualną" potencjalnych kandydatów: słynna zagadka o dwudziestu pięciu koniach (link poniżej) również pochodzi z interview.
I to już koniec na dziś!
Jeżeli chcesz do komentarza wstawić kod, użyj składni:
[code]
tutaj wstaw swój kod
[/code]
Jeżeli zrobisz literówkę lub zmienisz zdanie, możesz edytować komentarz po jego zatwierdzeniu.