Project Euler - What you've learned

  • Thread starter Thread starter Edgardo
  • Start date Start date
  • Tags Tags
    Euler Project
Click For Summary
SUMMARY

The forum discussion centers on experiences and insights gained from solving problems on Project Euler. Participants highlight the diverse programming languages used, including K, Python, C++, and Java, noting that Python's performance can be significantly enhanced using Psyco, a Python compiler. Memoization is emphasized as a crucial technique for optimizing problem-solving efficiency. Additionally, the discussion mentions the importance of algorithm efficiency and the utility of resources like Cormen's "Introduction to Algorithms" for competitive programming.

PREREQUISITES
  • Familiarity with Project Euler problem-solving platform
  • Understanding of memoization techniques
  • Basic knowledge of programming languages: Python, C++, Java
  • Awareness of algorithm efficiency concepts
NEXT STEPS
  • Explore the use of Psyco for optimizing Python performance
  • Learn about memoization techniques in depth
  • Investigate the capabilities of GMP for handling large numbers in programming
  • Study algorithm efficiency and optimization strategies from Cormen's "Introduction to Algorithms"
USEFUL FOR

Anyone interested in competitive programming, including software developers, algorithm enthusiasts, and students looking to enhance their problem-solving skills through platforms like Project Euler.

Edgardo
Messages
706
Reaction score
17
So I registered on http://projecteuler.net/" and I must say: it's quite addictive!
I didn't expect it to be that much fun.

I'd like to share what things I've learned from solving the problems:


- When solving a problem you get access to a thread. I was impressed
how different the approaches are. People use "crazy languages" like K where
the code looks like this: */_*a@&1000=+/'a:b,'(_sqrt+/)'b*b:,/n,/:'1+!:'n:!1000

- http://en.wikipedia.org/wiki/Memoization" : Use results that you've calculated before

- Using http://psyco.sourceforge.net/" (a Python compiler) improved the Python performance of one my programs by a factor of 4.

- C++ is much faster than Python. But Python can handle really big numbers.
I will probably have to learn using http://gmplib.org/" .

- Java is fast. But the BigInteger datatype is slow (maybe I used it in the wrong way?) and hard to use :frown:


What did you learn (for example what kind of techniques boosted the speed
of your programs)?
What programming languages do you use and prefer?
 
Last edited by a moderator:
Technology news on Phys.org
Hi, I registered in spoj.pl , www.topcoder.com[/url] , [url]www.codechef.com[/URL], and many acm judges ... i am chandubaba everywhere. Read the book "introduction to algorithms" by cormen, awesome! Very good for all these sites. But i am not there in project euler ... i am not familiar with gcj stuff. Also we need to do a lot of math (learn it fun way, ie not preparing for exam but for fun)... dynamic programming and graph theory seems to be everywhere at the elementary level.
 
Last edited by a moderator:
I learned:
C can handle bigger numbers than C++
Many algorithms are already better implemented than I ever could, especially in Mathematica
Thinking about a problem first can reduce the time needed to get the answer significantly
 
chandubaba said:
Hi, I registered in spoj.pl , www.topcoder.com[/url] , [url]www.codechef.com[/URL], and many acm judges ... i am chandubaba everywhere. Read the book "introduction to algorithms" by cormen, awesome! Very good for all these sites. But i am not there in project euler ... i am not familiar with gcj stuff. Also we need to do a lot of math (learn it fun way, ie not preparing for exam but for fun)... dynamic programming and graph theory seems to be everywhere at the elementary level.[/QUOTE]

Interesting. I'm currently reading Cormen's book and I like it. But I wouldn't have thought that it is actually useful for the problems on the aforementioned websites.
 
Last edited by a moderator:
There are larger int objects in C++ as well, however for project euler I can recommend vectorized python (numpy).
 
I did it in Pari. It makes most of the problems trivial -- though I'll admit it's pretty bad at string manipulation.
 
Project euler taught me the hard way about algorithm efficiency...
 
I learned that pretty much everything I ever need to implement has been implemented by an open source project somewhere along the line...
 
Edgardo what's your handle in topcoder?
 

Similar threads

  • · Replies 7 ·
Replies
7
Views
4K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 133 ·
5
Replies
133
Views
11K
  • · Replies 397 ·
14
Replies
397
Views
20K
  • · Replies 8 ·
Replies
8
Views
3K
Replies
16
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 31 ·
2
Replies
31
Views
5K
  • · Replies 97 ·
4
Replies
97
Views
9K