0votos

SERIE en Haskell

por josejuan hace 2 años

A una serie de la que sólo se dan algunos elementos puede añadirse cualesquiera otros elementos de forma arbitraria. Y todas son correctas. De entre las infinitas funciones generadoras que pueden definirse, las "habituales" son los polinomios (por ser fáciles de resolver).

Este desafio trata de crear un algoritmo para poder obtener una serie dada.

1
2
3
4
5
6
7
8
9
10
11
s x = (31590 * x^5 - 239550 * x^4 + 725550 * x^3 - 917850 * x^2 + 432660 * x + 7200) `div` 3600 
 
serie = s <$> [0..] 
 
 
 
 
{- 
> take 20 serie 
[2,11,51,252,1253,5255,17074,45194,102820,208931,389333,677712,1116687,1758863,2667884,3919486,5602550,7820155,10690631,14348612] 
-} 
2 comentarios
0votos

Escrito por dario delgado hace 2 años

Como puedo hacerlo, no hay una progresion artimetica para resolverlo. He visto tu algoritmo y no entiendo nada, porque divides todos los numeros entre 3600 (div 3600), de donde aparece el numero 31,590
Saludos.
0votos

Escrito por josejuan hace 2 años

Hola Dario, como digo, no hay ningún criterio que establezca qué número debe seguir al 5255, ¿porqué el 17074?, ¿porqué no el 0?, ¿porqué no el -1?, ¿porqué no ninguno?, ...

Otro ejemplo, dada la serie "1, 2, 3, 4, x, 6, 7, ..." ¿cuanto vale x? ¡NI IDEA! ¿porqué el 5? (que es el que todo el mundo espera).

Otro ejemplo, dada la serie "1, 11, 13, 17, 25, 32, 37, ..." ¿qué número sigue?, se supone, se espera, que alguien se quede un rato mirando los números y, al final, llegue a que el número siguiente resulta de sumar la suma de los dígitos ¡pero en el enunciado NADA impide que yo diga que le sigue cualquier otro número!.

Una serie de la que no se da la función generadora PUEDE TENER CUALQUIER NÚMERO (función generadora o criterios que acoten las soluciones válidas).

Así, la serie del enunciado quizás tenga una forma "original" de ser generada (como el ejemplo de la suma de los dígitos que he puesto) ¡pero no hay NADA en el enunciado que haga errónea cualquier solución que a ti se te ocurra! (hombre, siempre y cuando los primeros términos coincidan, en tu solución ¡no coinciden!).

Así, soluciones hay infinitas pero una "habitual" es solucionar el polinomio
P[x] = a0 + a1 x + a2 x^2 + a3 x^3 + ...

Para que cada P[i] sea el término i-ésimo de la serie que es lo que yo he hecho.

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.