Strony internetowe z zadaniami dla programistów
Prawie wszystkie zasoby w kolekcji są w języku angielskim, dzięki czemu będziesz miał okazję nie tylko poćwiczyć rozwiązywanie problemów i łamigłówek z kodowaniem, ale także zdobyć dodatkową praktykę w używaniu języka angielskiego w programowaniu.![Sprawność mózgu. Bieżące zadania doskonalenia umiejętności programowania - 2](https://cdn.javarush.com/images/article/992bd044-8fd5-4ff7-95b8-834103638b2c/800.webp)
-
Jeden z najpopularniejszych anglojęzycznych zasobów z zadaniami dla programistów. Można na nim znaleźć ponad 200 zadań o różnym stopniu złożoności, które można rozwiązać bezpośrednio na stronie online, korzystając z jednego z 10 dostępnych języków programowania (w tym Java).
-
Programming Praxis to popularny blog, na którym regularnie publikowane są różne ciekawe i co najważniejsze istotne zadania dla programistów. Wspólne dla wielu języków programowania. Wyzwania mają na celu pomóc programistom nadążać za najnowszymi zmianami w technologii i podejściu do programowania w praktyce.
-
TopCoder to aktywna społeczność programistów, którzy uwielbiają się rozwijać i rozwiązywać różne problemy. Regularnie publikowane są nowe zadania, których pomyślne rozwiązanie pozwoli nie tylko przećwiczyć i zwiększyć swój HR, ale także otrzymać nagrody pieniężne.
-
CodeKata to blog z wieloma dość oryginalnymi i dowcipnymi problemami dla programistów, wymyślony przez Dave'a Thomasa, jednego z autorów słynnej książki Pragmatic Programmer („Pragmatic Programmer. Droga od ucznia do mistrza”). Problemy na stronie CodeKata są różnorodne, a rozwiązania odpowiadają rzeczywistej pracy programistycznej.
-
Sędzia Uniwersytetu Pekińskiego online dla ACIP/ICPC
Peking University JudgeOnline dla ACIP/ICPC to strona Uniwersytetu Pekińskiego zawierająca zadania dla programistów z różnych konkursów i konkursów. Strona jest regularnie aktualizowana, problemy można rozwiązywać w czasie rzeczywistym, a rozwiązania ocenia komisja złożona z ekspertów Uniwersytetu w Pekinie.
-
Kolejna stara, znana strona z poważnymi i nietrywialnymi zadaniami. „Projekt Euler to zbiór złożonych problemów matematycznych i programistycznych, których rozwiązanie wymaga czegoś więcej niż tylko znajomości matematyki. Problemy różnią się stopniem złożoności, a podejście opiera się na indukcyjnym uczeniu łańcuchowym. Oznacza to, że po rozwiązaniu jednego problemu odkryjesz nową koncepcję, która pozwoli ci rozwiązać inne problemy, które wcześniej były niedostępne do zrozumienia” – mówią twórcy zasobu.
-
Daily WTF to kolejna popularna społeczność programistów działająca na zasadzie Bring Your Own Code (BYOC), co oznacza, że programiści dzielą się własnym kodem źródłowym w celu rozwiązywania różnych oryginalnych problemów. „Cel BYOC jest prosty: zapewnić programistom możliwość doskonalenia umiejętności programowania poprzez rozwiązanie problemu, który jest nieco bardziej interesujący niż zwykłe, nudne rzeczy” – czytamy na stronie.
-
Doskonała rosyjskojęzyczna strona z zadaniami algorytmicznymi, które służą do testowania umiejętności specjalistów podczas rozmów technicznych w firmach takich jak Google, Facebook i inne. Zaprezentowano wiele problemów, w tym także oryginalnych, o różnym stopniu trudności.
-
Konkursy programistyczne Ala Zimmermanna
Strona znanego autora, na której „szaleni programiści rywalizują o sławę i fajne nagrody”. Konkursy odbywają się raz lub dwa razy w roku, a nazwiska wybitnych programistów publikowane są na stronie głównej zasobu, co z pewnością cieszy się zainteresowaniem obiecujących pracodawców.
-
Jedno z największych rosyjskojęzycznych archiwów problemów programistycznych z systemem automatycznego sprawdzania. Głównym źródłem zadań archiwum są konkursy na Uralskim Uniwersytecie Federalnym, Mistrzostwa Uralu i inne regionalne wydarzenia programowe. Timus Online Judge umożliwia także wzięcie udziału w internetowych wersjach większości konkursów, które regularnie odbywają się na Uralskim Uniwersytecie Federalnym.
5 ciekawych zadań
Oto kilka ciekawych łamigłówek dla tych, którzy nie mogą się doczekać, aby zacząć.![Sprawność mózgu. Bieżące zadania doskonalenia umiejętności programowania - 3](https://cdn.javarush.com/images/article/86c941c3-2b84-4f4a-9fd1-97323de10940/800.webp)
-
Zagadka Blendera od Steve’a Jobsa
Wyzwanie: Zmniejszasz się do wielkości pięciocentówki i wrzucasz do blendera. Twoja waga spadła, a gęstość ciała pozostaje taka sama. Ostrza zaczną się obracać po 60 sekundach. Twoje działania?
To klasyczne zadanie kojarzone zwykle ze Stevem Jobsem, założycielem Apple. Kiedy Jobs wrócił do Apple w 1997 r., osobiście przeprowadził rozmowy z każdym pracownikiem firmy i potraktował to zadanie jako jeden ze swoich pierwszych testów.
Rozwiązanie:
У данной задачи больше одного решения, так Jak она служит для того, чтобы оценить креативность сотрудника, умение быстро находить выход из стрессовой ситуации и неординарно мыслить. Вот наиболее классический вариант решения: лечь Jak можно плотнее к днищу блендера, чтобы его лезвия крутLubсь над вами.
-
Сколько людей было на конференции?
Задача: На конференции каждый гость пожал руку всем остальным. Было 66 рукопожатий. Сколько человек было на научной конференции?
Другая классическая программистская задача из тех, которые часто дают на первых этапах технических собеседований.
Классическое решение:
Допустим, на конференции было n человек. Первый человек пожимает руку всем остальным: n-1 раз (n-1 человек). Второй человек пожимает руку всем остальным (но не первому, так Jak это уже было сделано): n-2 раза. 3-й человек пожимает руку всем остальным: n-3.
Таким образом, общее количество рукопожатий будет = (n-1) + (n-2) + (n-3) + …… 0;
= (n-1) * (n-1 + 1) / 2 = (n-1) * n / 2 = 66
= n ^ 2 -n = 132
= (n-12) (n + 11) = 0;
= n = 12 ИЛИ n = -11Вариант -11 исключен, поэтому ответ: 12 человек.
-
Бар и 25 стульев.
Еще одна классическая и весьма остроумная задачка, на этот раз посложнее.
Задача: Есть бар с 25-ю стульями, которые расположены в линию. Посетители этого бара — антисоциальные личности, поэтому, когда они заходят в бар, то всегда стараются найти место Jak можно дальше от остальных. Если постоянный посетитель заходит в бар и обнаруживает, что свободного места без соседства с кем-либо нет, он разворачивается и уходит. Владелец бара, естественно, хочет видеть можно больше посетителей. Владелец может указать место, на которое нужно сесть, только первому клиенту, тогда Jak все остальные сами выберут себе самое дальнее место от других. Предположим, что места пронумерованы от 1 до 25. Какое место должно быть занято первым?
Решение:
Первый человек должен сесть на стул 9 Lub 17 (из-за симметрии, не имеет значения, Jakое именно из двух мест). Предположим, он выбирает место 9. Следующий человек выберет место 25, так Jak оно самое дальнее от места 9. Следующие два человека займут места 1 и 17. Следующие три займут 5, 13 и 21. Следующие шесть будут занимать стулья 3, 7, 11, 15, 19 и 23. Таким образом, в баре разместится максимум 13 человек, и никто не будет сидеть рядом с другим человеком. Если место, отличное от 9 Lub 17, будет выбрано первым, общее количество посетителей бара будет меньше 13.
-
Деньги в карманах и религия.
Интересно составленная задача на нахождение алгоритма.
Problem: Mężczyzna ma w kieszeni pieniądze, których łączna suma wynosi od 90 do 95 dolarów. Po drodze odwiedza kilka świątyń. Gdy tylko wejdzie do świątyni, jego pieniądze podwajają się i ostatecznie przekazuje 100 dolarów na rzecz każdej świątyni. W efekcie po odwiedzeniu ostatniej świątyni jego kieszeń staje się pusta. Teraz pytanie: ile początkowo miał pieniędzy i ile świątyń odwiedził?
Rozwiązanie:
Liczenie zaczynamy od ostatniej świątyni:
Po odwiedzeniu ostatniej świątyni (1) zostało mu 0 pieniędzy, więc => (0 + 100) / 2 = 50. Przed odwiedzeniem ostatniej świątyni miał 50 dolarów
Przed wizytą w poprzedniej świątyni (2) miał (50 + 100) / 2 = 75.
Przed wizytą w poprzedniej świątyni (3) miał (75 + 100) / 2 = 87,5.
Przed wizytą w poprzedniej świątyni (4) miał (87,5 + 100) / 2 = 93,75.
Przed odwiedzeniem poprzedniej świątyni (5) ma (93,75 + 100) / 2 = 96,875 - kwota przekracza warunki początkowe.
Odpowiedź: Ta osoba pierwotnie miała 93,75 dolara i odwiedziła 4 świątynie. -
Incydent na polu.
I na koniec jeszcze jeden, stary klasyk, można nawet powiedzieć, że akordeonowy, problem logicznego myślenia.
Problem: Znaleziono martwego mężczyznę na polu pszenicy. Trzymał mocno zapałkę w dłoniach. Dlaczego dana osoba zmarła?
Rozwiązanie:
Mężczyzna leciał samolotem z trzema współpasażerami. Silnik zgasł i samolot zaczął spadać. Mężczyźni odkryli, że na czterech z nich były tylko trzy spadochrony i zaczęli ciągnąć zapałki. Jeden z nich pociągnął za krótki i zmuszony był skoczyć bez spadochronu.
GO TO FULL VERSION