|
|
|
|
|
by tsahyt
4579 days ago
|
|
I've already posted this on /r/haskell on reddit but since the article turned up here as well, I might just as well post this again. Since we're talking optimization I had a short look at the C code and found it to be a very naive implementation and have managed to cut the execution time quite a bit by employing a sort of memoization. Once you get to a number of the sequence which you have already seen before, the length from there to 1 remains the same as before. So here is the code: http://lpaste.net/96397 Here are my measurements: time ./original 1000000
(329, 837799)
real 0m0.183s
user 0m0.180s
sys 0m0.001s
time ./new 1000000
(329, 837799)
real 0m0.017s
user 0m0.015s
sys 0m0.001s
|
|