Suka matematika? Programming? Suka iseng, apa yah yang bisa aku buat untuk melatih kemampuan programmingku? Nah situs untuk memuaskan dahaga Anda bisa dilihat di sini.
Ya udah kalau males ngeklik linknya, ini aku copy pastekan:
Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.
The motivation for starting Project Euler, and its continuation, is to provide a platform for the inquiring mind to delve into unfamiliar areas and learn new concepts in a fun and recreational context.
Who are the problems aimed at?
The intended audience include students for whom the basic curriculum is not feeding their hunger to learn, adults whose background was not primarily mathematics but had an interest in things mathematical, and professionals who want to keep their problem solving and mathematics on the edge.
Can anyone solve the problems?
The problems range in difficulty and for many the experience is inductive chain learning. That is, by solving one problem it will expose you to a new concept that allows you to undertake a previously inaccessible problem. So the determined participant will slowly but surely work his/her way through every problem.
How do I know where should I start?
That depends on your background. In the Problems table you will be able to see how many people have solved each problem. As a general rule of thumb the more people that have solved it, the easier it is.
I’ve written my program but should it take days to get to the answer?
Absolutely not! Each problem has been designed according to a “one-minute rule”, which means that although it may take several hours to design a successful algorithm with more difficult problems, an efficient implementation will allow a solution to be obtained on a modestly powered computer in less than one minute.
Does it matter if it takes more than one minute to solve?
Of course not, but that should provide the impetus to return to the problem and see how you can improve your approach. But remember that once you’ve solved a particular problem you will be able to access a thread relating to that problem and it is here that you may be able to pick some tips from others that have solved it.
I solved it by using a search engine, does that matter?
Making use of the internet to research a problem is to be encouraged as there could be hidden treasures of mathematics to be discovered beneath the surface of many of these problems. However, there is a fine line between researching ideas and using the answer you found on another website. If you photocopy a crossword solution then what have you achieved?
I’ve checked my program ten times now and I keep getting told my answer is wrong! Have you made a mistake?
With newly released problems it is quite possible that a small error may have slipped through the net, or maybe the wording is slightly ambiguous and the problem has not been explained as well as it could. However, when so many people have hit the target and one marksman misses ten times on the run, he/she can hardly shoot his/her own foot and conclude that because the gun is working properly the fault must lie in the target.
Do you have any hints on solving problems?
Read the details of the problem very carefully and make note of any example cases given. Experiment with pencil and paper to get a feel for the ideas behind the problem. If the ideas are new to you, use the internet or books to get some background; the problem should contain clues as to what to look-up. Try writing a program to generate for simple cases and check that your output agrees with the example cases; this will confirm you’ve understood the problem and are heading in the right direction. Based on this try to extrapolate to estimate the time it will take to get the final answer and if it’s going to take significantly more than a minute rethink your strategy.
How did it all start?
Project Euler was started by Colin Hughes (a.k.a. euler) in October 2001 as a sub-section on mathschallenge.net. Who could have known how popular these types of problems would turn out to be? Since then the membership has continued to grow and Project Euler moved to its own domain in 2006.
Contoh soalnya seperti ini:
Add all the natural numbers below one thousand that are multiples of 3 or 5.
Masalahnya, ada buanyak sekali cara untuk mencari jawabannya. Tergantung algoritma, formula, atau bahkan bahasa pemrograman yang dipakai!
Untuk haskel, dari command linenya cuma butuh :
sum [3,6..999] + sum [5,10..999] – sum [15,30..999]
Padahal yang standar kan :
i, result: integer;
i := 0;
result := 0;
while i < 1000 do
if (i Mod 3 = 0) or (i Mod 5 = 0) then
result := result + i;
Hahaha! Seru abis deh! Thx buat Peter yang udah kasih tahu.
Situs lainnya adalah topcoder.com dan acm.uva.es.
Mau? Mau? Mau?