Możliwe duplikaty:
jak dostosować się do pytań kwestionujących przed rozmową kwalifikacyjną?
InterviewStreet to nowa firma, która zasadniczo działa jako filtr dla firm w celu znalezienia programistów, którzy mogą kodować. Mój problem polega na tym, że moja matematyka jest dość słaba i chciałbym ją przestudiować, nawet jeśli jest ona od podstaw, aby móc rozwiązać pytania takie jak to, które można znaleźć na ich stronie:
Find the no of positive integral solutions for the equations (1/x) + (1/y) = 1/N! (read 1 by n factorial) Print a single integer which is the no of positive integral solutions modulo 1000007
Teraz proszę NIE publikować odpowiedzi na to pytanie, pochodzi ona bezpośrednio z InterviewStreet i nie powinna być tutaj zamieszczana. To nie jest odpowiedź, której szukam w tym wątku. Zadaję bardziej podstawowe pytanie, na które prawdopodobnie mogą odpowiedzieć niektórzy hakerzy ze społeczności SO.
Jak przygotować się na takie pytanie? Jakie zasoby są dla mnie dostępne do nauki / uczenia się, jak rozwiązać ten problem? Czy dotyczy to otwartych materiałów szkoleniowych MIT? Khan academy? Jakieś szczególne książki? Nie jestem nawet pewien, od czego zacząć rozwiązywać powyższy problem i chciałbym dowiedzieć się, jakie kroki mogę w tym celu podjąć.
źródło
Odpowiedzi:
Często pytania do wywiadu mają na celu sprawdzenie umiejętności rozwiązywania problemów bez potrzeby posiadania specjalistycznej wiedzy. Ale w przypadku twojego pytania pewna wiedza matematyczna zdecydowanie by pomogła. Przynajmniej musisz zrozumieć definicje „całki dodatniej” i „modulo”. Przydatny może być wstępny kurs teorii liczb, być może ten z OCW .
Polecam również Project Euler do przykładowych problemów - to świetny sposób na poszerzenie wiedzy matematycznej i programistycznej. Wybierz język i zacznij pracę nad ćwiczeniami.
źródło
Nie możesz przygotować się na tego rodzaju problemy, po prostu zapamiętując książkę. Jedynym sposobem, aby być dobry w rozwiązywaniu problemów jest wykonując wiele i wiele problemów. Sugeruję jednak, aby uzyskać książkę algorytmów i struktur danych i przeczytać ją. Znacząco przyspieszy ten proces.
Pamiętam kilka lat temu spędziłem całe lato (ponad 5 godzin dziennie) ćwicząc rozwiązywanie tego rodzaju problemów dla zabawy.
Istnieje wiele miejsc, w których możesz to zrobić. Project Euler to dobry punkt wyjścia. UVa Online Judge ma również mnóstwo problemów.
źródło
Ten szczególny problem wymaga znajomości podstawowej teorii liczb, w szczególności idei takich jak faktoring liczb zespolonych, niektórych właściwości liczb pierwszych i zrozumienia względnie pierwszych par liczb.
Inne problemy na stronie wymagają zrozumienia dużej notacji O, prostych struktur danych, podstawowych algorytmów, takich jak sortowanie i kombinatoryka. Zaliczyłem 3 z 5 problemów i prawie skończyłem z czwartym i nie wykorzystałem żadnej konkretnej wiedzy po pierwszym roku zajęć CS w college'u. To powiedziawszy, są to trudne problemy. Niektóre z nich wymagają zaskakującej intuicji matematycznej.
Aby przygotować się na tego rodzaju rzeczy, musisz być dobry w rozwiązywaniu problemów matematycznych. Zajrzyj na Olimpiadę (jeśli jesteś w liceum) lub egzamin Putnam (jeśli jesteś na studiach) i wykonaj problemy praktyczne, które znajdziesz. Są trudne, ale w końcu stajesz się lepszy.
Nie rób też pytania 30-punktowego - Kwadrantowe - najpierw. Jak dotąd najtrudniej.
źródło