08/06/2013

Project Euler

Home

Po raz pierwszy o Project Euler usłyszałem już tak dawno temu, że nie pamiętam kiedy ale dopiero ostatnio założyłem konto i rozpocząłem zabawę. W skrócie jest to zestaw zadań matematyczno programistycznych (obecnie ponad 400) o różnym stopniu złożoności i trudności. Rozwiązanie zadania polega na podaniu zawsze jednej liczby np.: liczba cyklicznych liczb pierwszych poniżej 1 miliona. Część problemów można rozwiązać siłowo ale nim dalej w las tym trudniej i trzeba kombinować.

Do założenia konta zachęcił mnie kolega z pracy (Dzięki Piotrek!). Okazało się, że w zabawie bierze udział już kilku z nas. Witryna projektu umożliwia śledzenie postępów innych, dyskusję na temat problemów, podaje statystyki ile osób rozwiązało poszczególne zadania itd.

Do tej pory korzystałem z konkurencyjnego portalu TopCoder. Co przyciągnęło mnie do Project Euler? Sądzę, że kilka rzeczy:
  • Proste reguły zabawy.
  • Bardzo prosty interfejs.
  • Element społecznościowy.
  • Stopniowanie trudności. Można zacząć od bardzo prostych problemów i przechodzić do coraz trudniejszych.
  • Krótkie i zwięzłe zadania, co nie znaczy, że zawsze proste.
  • To coś.
Nie mówię, że TopCoder jest gorszy. Jest po prostu innych. Dla mnie Project Euler to czysta, nieskomplikowana zabawa. TopCoder ma wyższy próg wejścia ale z drugiej strony daje dużo więcej np.: nagrody pieniężne.

Podsumowując, jeśli jeszcze nie próbowaliście to zachęcam. Ja spróbowałem i nie mogę się oderwać.

3 comments:

Anonymous said...

Też bardzo polecam :)
W jakim języku rozwiązujesz tam zadania? Ja próbowałem przez pewien czas w Javie (na co dzień w nim programuje)ale jednak do tej zabawy po pewnym czasie musiałem zaprzyjaźnić się na nowo ze starym dobrym C++

Michał Komorowski said...

Ja korzystam z C#, do paru zadań użyłem również WolframAlpha. Zakładam, że przesiadłeś się na C++ ze względu na wydajność? Nie wiem, które zadanie teraz rozwiązujesz i nie jestem specjalistą w Java ale z moich obserwacji wynika, że jeśli program liczy się za długo to znaczy, że źle go napisałem. Często wystarczy zastosowanie jakiegoś małego "tricku" i z kilku minut robi się kilka sekund lub mniej. C# ma natomiast dużo więcej "przydasiów" niż C++ i przede wszystkim znam go dużoooooo lepiej.

Michal Franc said...

Rozwiazywanie zadan z Project Euler to swietny sposob na nauke skladni nowego jezyka.

Obecnie bawie sie zadaniami w Scali i Pythonie.

Post a Comment