1voto
El problema de Ullman en Haskell
por

josejuan

hace 5 años

Esta es la versión con coste O(n * |xs|) solo que me olvidé de añadir dos computaciones más y el coste final es O(n * |xs| + n + n^2) que puede reducirse a O(n * |xs| + n + n log n). Para n << |xs| es mucho más eficiente ésta que la anterior (pero más verbose, claro).

2votos
Snake en Haskell
por

josejuan

hace 5 años

Seguro es más verbose de los necesario, pero entre lo torpe que soy en Haskell y que necesitaba claridad, he preferido dejarlo así y no "simplificar" (aun así no es largo). He usado SDL, el wrapper para OpenGL ¡fuerza a programar imperativamente!. En "real" serían tres o cuatro archivos, aquí es más cómodo sólo uno.

0votos
Factorion en Haskell
por

josejuan

hace 5 años

Esta versión de haskell es muy eficiente, sólo revisa aquellos números que son imágen de la actuación (suma de factoriales de dígitos). Curiosamente, no alcanza la velocidad de la versión de C (posteo luego) ni aunque lo paralelice (es demasiado poco trabajo para sacar ventaja paralelizando).

0votos
Factorion en Haskell
por

drabor

hace 5 años

Como sólo hay 10 factoriales, pongo los resultados literales y así no calculo nada, no se si de esta forma lo consideráis válido. Tarda 22.22 s en el intérprete y 482 ms cuando lo compilo.

1voto
Listín telefónico funcional en Haskell
por

josejuan

hace 5 años

Debo reconocer que ha sido mas fácil de lo que pensaba. El código seguro que es mucho más verbose de lo necesario, pero por algo se empieza :) Por otro lado, lo suyo es separar el código en al menos tres archivos (estructuras, código puro, código impuro) pero aquí (en solveet) es más cómodo poner todo junto.