Soy un novato total de Haskell, y la programación en general, pero estoy tratando de resolver algunos problemas del Proyecto Euler porque me gusta resolver problemas . Sin embargo, tengo un problema con problem #12.Ayúdame a encontrar el problema con mi solución al Proyecto Euler # 12 en Haskell
Inventé una solución que pensé que funcionaría, pero, por desgracia, no es así.
¿Puede ayudarme abriendo los ojos al problema con mi código, y tal vez me empuje en la dirección correcta para solucionarlo? Gracias.
Aquí está el código:
triangleNumber = scanl1 (+) [1..]
factors n = [x | x <- [1..n], n `mod` x == 0]
numFactors = length . factors
eulerTwelve = find ((>500) . numFactors) triangleNumber
Muchas gracias! :)
Se ve bien conmigo. ¿Cuál es el problema específico que estás teniendo? – luqui
se mueve increíblemente despacio –
Y todo el tema del proyecto Euler es que puedes hacer la mayoría de los problemas usando la fuerza bruta, o puedes hacerlo inteligentemente usando un ingenioso para evitar la fuerza bruta. Si su código es lento, ¿está utilizando el enfoque de la fuerza bruta? Piense en el problema antes de escribir el código de fuerza bruta. En el caso de PE 12, esto es manejable usando incluso la fuerza bruta si lo haces de una manera razonable. (Eso es cierto para la mayoría de los problemas PE pequeños numerados). Sin embargo, hay una manera de mejorar esa solución. Piensa en cuál es la suma de los números 1 a n. –