Co masz zrobić jutro, zrób dziś. Rozwiązanie zagadki dla cierpliwych.
Zagadkę, którą tydzień temu postawiłem przed p.t. Czytelnictwem blogu można rozwiązać na kilka sposobów.
Sposób pierwszy: policzyć algorytmem. Na przykład Pythonem:
dzień, zostało = 1, 1
while zostało > 0:
zrobione = 2*zostało/(366-dzień)
zostało -= zrobione
print(dzień, zrobione, zostało)
dzień += 1
W wyniku zobaczymy, że ostatnia praca została wykonana w dniu numer 364, a więc w przedostatni dzień roku:
1 0.005479452054794521 0.9945205479452055
2 0.005464398615083547 0.989056149330122
3 0.005449345175372573 0.9836068041547494
4 0.005434291735661599 0.9781725124190879
5 0.005419238295950625 0.9727532741231373
6 0.0054041848562396515 0.9673490892668977
7 0.005389131416528678 0.961959957850369
8 0.005374077976817704 0.9565858798735514
...
358 0.00010537407797681763 0.00031612223393045287
359 9.032063826584368e-05 0.0002258015956646092
360 7.526719855486973e-05 0.00015053439710973948
361 6.021375884389579e-05 9.032063826584369e-05
362 4.5160319132921845e-05 4.5160319132921845e-05
363 3.0106879421947898e-05 1.5053439710973947e-05
364 1.5053439710973947e-05 0.0
Sposób drugi: policzyć w arkuszu. Na przykład tak:

...

Też widać, że na koniec 364 dnia cała praca została wykonana.
Zerknijmy jeszcze na wykres pozostałej pracy w czasie:

Pomarańczowa część wykresu pokazuje ilość pozostałej pracy przy podejściu "normalnym" tj. liniowym, kiedy codziennie wykonujemy 1/365 zadania. Niebieska - przy podejściu jak w zagadce.
Okazuje się, że owszem, na początku "zaoszczędzamy" całkiem sporo czasu wykonując więcej pracy niż wynikałoby to ze średniej dziennej. Ale ilość pozostałej pracy stale się zmniejsza, a wyliczenie dziennej pracy do wykonania opiera się na tym właśnie, co pozostało; czym bliżej końca tym mniej pracy wykonujemy. Dokładnie w połowie roku, drugiego lipca, czyli w dniu numer 183, niebieska krzywa osiąga stromiznę linii pomarańczowej i od tego dnia wykonujemy codziennie mniej niż 1/365 zadania, a więc "przepada" to, co "nadgoniliśmy" dotychczas:

Ale - jak zresztą zasugerowałem w treści samej zagadki - można ją rozwiązać w pamięci, bez pomocy arkuszy kalkulacyjnych czy w ogóle komputerów!
A jak?
A no tak: skoro każdego dnia wykonujemy ułamek pracy wyliczany jako dwukrotność pracy pozostałej podzieloną przez liczbę pozostałych dni, to dopóki ta liczba pozostałych nie osiągnie dwójki, nigdy nie wykonamy całej pracy. A liczba pozostałych dni osiąga dwójkę w 364 dniu, czyli 30 grudnia rano, na dwa dni przed końcem roku. W tym dniu wykonamy 2/2 pozostałej pracy czyli w Sylwestra mamy wolne.
A jak Wam poszło?
Szybko. I same poprawne odpowiedzi!
1Waldek wygrał tę rundę, przysyłając poprawne rozwiązanie jako pierwszy, zaledwie w kilka godzin po publikacji zagadki:

2Również jeszcze tego samego dnia swoją odpowiedź nadesłał Rafał. A konkretnie dwie, pierwszą błędną, przymykam oko, a zaraz potem drugą, poprawną. Plusik za zauważenie własnego błędu i szybką poprawkę!

3Jeszcze się dobrze nie zrobił wieczór, a już pokazał się trzeci rozwiązujący. Cichy idzie na rekord jeśli chodzi o zwięzłość odpowiedzi 🙂

4Nazajutrz Rozie, bez pudła:

5Chwilę potem rekordowo krótkie rozwiązanie nadesłał Piotr:

6Potem dwa dni ciszy, wyczerpała się pula zwyczajowych rozwiązujących. Aż tu nagle poprawne rozwiązanie odgadł Zielak:

Komentarze