Advertisement

Project Euler

Started by May 07, 2009 08:56 AM
27 comments, last by ChurchSkiz 15 years, 6 months ago
Various people, including me, have posted threads about this site before, Project Euler. I thought I would repost it because A) it's been a while, B) we have some new people now, and C) maybe some of the older folks have forgotten about it. It's a mathematics contest site, where most of the problems are designed to be solved with computers (I say most because some of the problems are quasi-introductory problems that can be done on paper in their early version, but will definitely require a computer in their later versions). The problems range from very easy (even naive solutions work out fine), to very hard. The general format is a problem statement describing the situation and how to calculate a given value (i.e., you're never told "find the Barycentric Point of XYZ" without there first being a definition of Barycentric Point). A couple of trivial example cases are provided. There will then be a single text box, where you are expected to type or paste the answer. This is a bit unique in programming contests, where you usually have to submit the entire program in order to get credit for solving the problem. Here, you only provide the answer. Because of this, there are no limitations on what programming language you use, how long your program runs, or whatever other resources you use. It's on your honor to not cheat, and not help others cheat. As far as I can tell, everyone stays pretty honest. Once you provide an answer to the problem, you'll be informed of whether or not your answer is correct. Incorrect answers do not count against you, only correct answers count towards your score. There are all kinds of rankings as well, including rankings by programming language as well as geography. There was a brief period a year ago where I was in the top 20 of C# users in the US. I haven't touched it in a while, so I'm sure I've dropped rank considerably. Once you solve a problem, you gain access to the discussion board for the problem. There, people discuss how they have solved the problem. I really like this part, it feels really good on the rare occasions that I come up with a solution only a few other people thought of. Anyway, enjoy.

[Formerly "capn_midnight". See some of my projects. Find me on twitter tumblr G+ Github.]

I haven't been on Euler in ages. I stopped briefly to write a class to store giant numbers (for the cases where my answers were outstripping the size of the biggest datatypes available to me), then that sorta ground to a halt and I haven't been back since...shame really.
Advertisement
I haven't encountered any problems that strictly required Big Number support. There's always been some sort of work around that kept the problem in normal data type bounds.

[Formerly "capn_midnight". See some of my projects. Find me on twitter tumblr G+ Github.]

I didn't read your whole post before checking out the Euler project and my head immediately exploded.

"There are people who can do this in their head, or even on paper?"

Then I read the part you said about using a computer.. WHY DIDNT I THINK OF THAT.. i miss the easiest questions sometimes..
Quote: Original post by bzroom
I didn't read your whole post before checking out the Euler project and my head immediately exploded.

"There are people who can do this in their head, or even on paper?"

Then I read the part you said about using a computer.. WHY DIDNT I THINK OF THAT.. i miss the easiest questions sometimes..

yeah, doing stuff in your head like that is definitely not the point of the site. From the site:
Quote:
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.

[Formerly "capn_midnight". See some of my projects. Find me on twitter tumblr G+ Github.]

The open-ended nature of the problems is my favorite part of the project. By "open-ended nature" I mean how your entire method of solution is up to you, including the basic question of whether you even use a computer to solve it or not (a few of the problems can be solved with pencil-and-paper).

This is something I'd like to see emphasized in universities more--not necessarily the mathematical problem solving but the open-ended problem solving where one is simply given a problem and one must decide on the tools and languages to be used to implement a solution as well as derive an algorithm. It just happens that mathematical problems are particularly well-suited to allowing one to literally have a choice of any language and any tools since the answer is simply a number. Many programming classes focus on using a particular language that is required for all projects. I'd like to see lower-level undergraduate courses emphasizing the important skill of choosing the right language for the task at hand more, and it seems like Project Euler could be a starting point.

Of course, the biggest problem with Project Euler in this context is that it's way too easy to cheat. I'm not sure how one would get around this without limiting the problem-solving choices in some way.

I also happen to believe mathematics and computer science are dual to one another in a sense and that the study of one is complemented by the study of the other. I wish more universities provided more support for students wishing to study both simultaneously to a significant degree, and this could be a natural way towards such unification. It could emphasize both mathematical thinking and open-ended problem solving for computer science students, and it could emphasize learning how to use a computer to perform mathematical investigations for math students; and for dual math and computer science students, it would be an ideal starting point for university studies, launching them well on both paths.

[Edited by - nilkn on May 7, 2009 4:45:33 PM]
Advertisement
This looks awesome, thanks.

I'm excited to go home tonight and get some of these done. From looking at a few I think I'll be doing very unoptimized algorithms on these, I'll be interested to see what kind of solutions people come up with.
Wow, I love this! I solved problem #1 and #2 already. Looking at some of the solutions other people have done, some people really suck at this and other people think of a way to do it which blows me away. Some guy used the golden ratio perfectly to find the sum of even Fibonacci numbers below 4 million. Wow!!! that would never have occurred to me!

I'm working on problem 3 now. I discovered the __int64 data type in the process :) Did you know that can hold up to 18.4 quintillion different values? (that's 18.4 trillion times a million)

Such a fun site :) I usually hate math, but this is awesome.
Quote: Original post by slayemin
Such a fun site :) I usually hate math, but this is awesome.


this makes me happy

[Formerly "capn_midnight". See some of my projects. Find me on twitter tumblr G+ Github.]

What a coincidence! I've recently started a new job and apparently the interviewers told my boss I was some hotshot developer (no idea where they got that idea from). Anyhoo, he decided to test me and gave me problem #237 (the rook tour thingy) from Project Euler to complete. I did it, he was thoroughly impressed and is now very nice to me :P

Kurt

This topic is closed to new replies.

Advertisement