Czasem jest trochę czasu do zabicia, całkiem nieźle sprawdzają się w tym łamigłówki. Jedną z łamigłówek są piramidy. Chodzi o rozmieszczenie na planszy 4x4 piramid o różnych wysokościach w taki sposób, by ze wskazanych miejsc "było widać" określoną ilość piramid. Na każdym polu musi być ustawiona jedna piramida, w linii piramidy muszą mieć różną wysokość.
Ta łamigłówka to świetny przykład tego, jak sprawdza się space–time tradeoff. Wystarczy rozpisać wszystkie możliwe ustawienia piramid na planszy (wbrew pozorom wcale nie ma ich tak wiele), dla każdego ustawienia piramid rozpisać ilość "widocznych piramid" z poszczególnych miejsc, a później tylko wyszukać odpowiedniego ustawienia. Łatwizna :)
Pozdrawiam,
Urszula Marciniak
- przygotowania tablic zawierających hashe z wybranej przestrzeni haseł,
- wyszukania w tablicy hasła dla podanego hasha,
W przypadku piramid "atak" również składa się z dwóch etapów:
- wygenerowanie wszystkich możliwych układów,
- znalezienie układu opisanego przez "wskazówki",
Takie podejście pozwala rozwiązać zadanie (właściwsze określenie - "znaleźć rozwiązanie") zupełnie obok logiki związanej z liczbą widocznych piramid.
Oczywiście warto jeszcze dodać, że to, co ma sens dla siatki 4x4 niekoniecznie jest efektywne dla siatek 5x5 i większych. Dokładnie tak samo jak dodanie salta do hasła przed hashowaniem powoduje, że rainbow tables stają się praktycznie nieprzydatne.