Pokazywanie postów oznaczonych etykietą łamigłówka. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą łamigłówka. Pokaż wszystkie posty

czwartek, 19 sierpnia 2010

Zagadki z rozmów kwalifikacyjnych

Jeżeli planujesz starać się o pracę w Google, Microsoft czy NVidia, to lepiej wiedz jak przewieźć jedną łódką wilka, kozę i kapustę.

Tak, często zanim padnie jakiekolwiek pytanie o projektowanie czy dowolny język programowania, to najpierw dostaje się do rozwiązania zagadkę. Nie wiem w jakim stopniu sprawdza to umiejętności programistyczne i czy rozwiązywanie łamigłówek w pełni przekłada się na kod dobrej jakości ;) Ale po prostu tak jest, więc lepiej się przygotować :)

Więc co oprócz standardowej zagadki o wilku, kozie i kapuście może nas czekać? Pozbierałem 8 ciekawych zagadek dostępnych na serwisach z "interview questions". Nie wybrałem tych najdziwniejszych albo najbardziej niemożliwych do rozwiązania, tylko te najbardziej ludzkie ;)

piątek, 13 sierpnia 2010

Kostka Rubika rozwiązana!

9 sierpnia tego roku ostatecznie ustalono - dowolnie pomieszaną kostkę Rubika można ułożyć wykonując tylko 20 (lub mniej) ruchów.

Jest to zaskakujące, jeżeli weźmie się pod uwagę liczbę możliwych ustawień oryginalnej kostki Rubika. Składa się ona z 8 narożników (kosteczek narożnych) i 12 krawędzi (kosteczek na krawędziach). Narożniki można ustawić na 8! (40 320) sposobów. Dodatkowo kosteczki te mogą różnić się orientacją (sposobem obrócenia) - to daje nam 37 możliwości (przyjmujemy, że np. jedna z kosteczek jest ustawiona białą powierzchnią do góry, to każdą z pozostałych 7 kosteczek można obrócić na 3 sposoby).

Krawędzie można ustawić na 12!/2 sposobów (239 500 800) - dzielimy przez 2, bo permutacja krawędzi zależy od permutacji narożników - muszą one mieć tą samą parzystość (http://en.wikipedia.org/wiki/Parity_of_a_permutation). A każdą z 12 kosteczek na krawędziach można zorientować na 2 sposoby, co przy przyjęciu jednej z nich za "orientującą" całą kostkę daje nam 211 (2 048) możliwości.

Razem:

8! * 37 * 12!/2 * 211 = 43,25 * 1018

Zadziwiające, że tylko w 20 ruchów można z każdej z tych pozycji dojść do pozycji wyjściowej.