←back to thread

165 points fzliu | 1 comments | | HN request time: 0s | source
Show context
Sohcahtoa82 ◴[] No.41843245[source]
During the solving of a problem on Project Euler, I learned that compilers are smarter than me.

I don't remember the problem number or its title, but it involved starting from the top-left corner of a 2D grid and finding how many possible paths there are to get to the bottom-right corner while only moving either down or right.

My naive solution was a brute-force depth-first recursive search. On my CPU at the time, it took about 3 minutes to solve. I thought, the logic of this is incredibly simple, why not do it in assembly?

My assembly solution took 5 minutes.

I decompiled the compiled C code to see what it had done, but I couldn't understand it. My assembly knowledge was too basic.

Thinking on it now, I wonder if a modern compiler would solve the entire problem at compile-time and just hard-code the answer to be output at runtime.

replies(5): >>41843296 #>>41843301 #>>41843529 #>>41843878 #>>41844013 #
johnsonjo ◴[] No.41843296[source]
Sounds like problem 15 [1]?

[1]: https://projecteuler.net/problem=15

replies(1): >>41843453 #
Sohcahtoa82 ◴[] No.41843453[source]
Yup! That was it!
replies(1): >>41843699 #
wging ◴[] No.41843699[source]
If you want a few similar problems, in ascending order of difficulty, try #81 through #83:

https://projecteuler.net/problem=81

https://projecteuler.net/problem=82

https://projecteuler.net/problem=83

replies(1): >>41854247 #
Sohcahtoa82 ◴[] No.41854247{3}[source]
Couldn't all three of those be solved using the A* path-finding algorithm?
replies(1): >>41861400 #
1. wging ◴[] No.41861400{4}[source]
Sshhh...