El proyecto Euler y mis recomendaciones Programación - 9 de February de 2009 | 1:11 pm | 9 Comentarios



Bueno este es un interesante proyecto de programación, sin embargo dare mi opinion y recomendaciones. Antes que nada, espero no sonar mamon, muchos piensan que me creo mucho por mis comentarios(sera que nadie me entiende). Pero nada de eso, ahora les explicare por que pienso lo que pienso.

No creo que dar la solución mas obvia al problema sea un logro, pues no es ningun reto hacer lo que te estan diciendo.
Si te dicen que “Encuentra la suma de todos los términos pares fibonnacci en una secuencia que no sobrepase los 4 millones” ¿Hace falta programar la solucion mas obvia para saber que estas bien?, en si te estan dictando el problema y solo lo tienes que codificar, NO PENSAR.

Es como cuando estas en la prepa y te dictan el siguiente problema, “La edad de Luis es 5 años más que el doble de la edad de Paty” y tus amigos se quedan NOOOO como se hace eso, y les dices ¡Te estan dictando dictando la ecuación y ni siquiera te das cuenta!.

EDAD DE LUIS (NO SABEMOS) le ponemos una “X”
es “=”
5 años mas ” +5″
que el doble de la de paty “+2y”
x=5+2y

Y con esa logica resuelves todo un curso de Álgebra. Algo parecido pasa en el proyecto Euler, te estan dictando como programar.

Encuentra la suma de los terminos pares fibonnaci IF (FIBONNACI ES PAR)LO SUMAS CON LO ANTERIOR;

Que no pase 4 millones.

MIENTRAS(SECUENCIA NO PASE CUATRO MILLONES) {
CALCULAR SIGUIENTE FIBONACCI ;
IF (FIBONNACI ES PAR)SUMA=SUMA+FIBONACCI;
}

¿Hace falta programar eso para saber que estas bien? Esa es mi razón por lo que digo que programar la solución mas obvia no tienen ningun logro, no es difícil llegar a esa solución pues te la estan dictando!!! Lo interesante es optimizarla y es el verdadero reto, además de que aprendes y estimulas más tu cerebro.



9 Responses to “El proyecto Euler y mis recomendaciones”

  1. marioly says:

    ¿pues que voy a opinar Julio?, son obviedades. Pero me imagino que mientras avanzas los retos son diferentes (o eso espero, no se no los conozco)

    En fin, solo por la linea de tu comment (en el otro post), te haz ganado una poderosa enemiga:

    http://images2.wikia.nocookie.net/familyguy/images/2/2e/Evil_Monkey.gif

    alejate de las ventanas.

  2. 4 says:

    He llegado a una fórmula compacta de encontrar la suma de los primeros K terminos pares (que le llamare s(k) )
    Sea P el número áureo.
    s(k) = |{[(P^(3k+2) – (-P)^(-(3k+2))]/sqrt(5)} + 1|/2

    Es algo difícil verlo, aunque si lo ven acá:
    http://rinconmatematico.com/latexrender/
    poniendo el siguiente código:
    s(k) = \frac{\frac{\phi^{3k+2}-(-\phi)^{-(3k+2)}}{\sqrt{5}} + 1}{2}
    verán la expresión mas clara (Aqui, la letra fi es el número aúreo)
    Si no cometí errores, debe estar bien. Se las dejo para que la prueben.

  3. julio says:

    Alabado sea usted señor #4, me pregunto si lo conozco y sospecho que si. Creo que usted conoce a la señorita de arriba.

    En fin, lo interesante aquí es la diferencia entre un matemático y un programador. Tu ves las soluciones en ecuaciones y nosotros en pasos. Mi afición a las matemáticas me colocan un poco en la parte de en medio entre las dos formas de pensamientos.

    Ahora la formula la relacion con el numero aureo es logica. Numero fibonacci / anterior fibonacci=1.66666666 lo de 3k+2 es por que se trata de los números en la serie que corresponden a los pares(no estoy 100% seguro).

    Lo demás no lo entiendo, pero voy analizarlo. Se ve muy emocionante. El raíz de 5 se me hace muy conocido. Pero bueno creo que llegaste compactando la serie no y algo asi como facturizandola no?

  4. 4 says:

    No, dudo que me conozcas/ dudo conocerte, aunque, parece que vivimos en el mismo estado.

    Probablemente la fórmula la puedas probar por inducción, pero eso le quita la parte de construcción al problema.

    La manera en que yo la hize, fue por pasos.
    Paso 1. Suponga que f(n) es la funcion de fibonacci. Prueba que f(n) es par si y solo si n es divisible por 3.

    Paso 2. Prueba que, para n múltiplo de tres, la suma de los términos de fibonacci pares, es igual a la suma de los terminos impares de fibonacci.

    Paso 3. Prueba que la suma de todos los números de fibonacci hasta n es f(n+2) – 1

    Paso 4. Concluye que la suma de los n primeros términos pares de la sucesión de fibonacci es (f(3n + 2) – 1)/2

    Ya con esto podrias construir un algoritmo mucho mas eficiente que la fórmula compacta que dije (Dado que aproximar raices, y potencias es computacionalmente caro).

    Paso 5. Prueba, que para toda n, (Ver la siguiente fórmula en latex, o en latexonline http://rinconmatematico.com/latexrender/ )
    f(n) = \frac{1}{\sqrt(5)}(\frac{1 + \sqrt(5)}{2}^n – \frac{1 – \sqrt(5)}{2}^n)

    Paso 6. Concluir

  5. 4 says:

    En mi primer comentario, en lugar de un +1 era un -1. En mi segundo comentario ya esta bien.

  6. AngelTC says:

    WTF!
    ¿Has intentado hacer alguno de los últimos? ¿O apartir del cincuenta y cacho?
    ¿Has probado hacer aunque sea uno?
    No te estan dictando la ecuación, ojalá, realmente tienes que pensarle y LUEGO pensarle mas para hacer el código óptimo, de los que he visto/leido/resuelto, se necesitan conocimientos de álgebra, teoría de números, en algunos geometria, combinatoria.. Pfff..
    Como dice 4, la cosa es hacer las cosas optimas, probar resultados y luego ya, a darle.
    Intenta el 226 y me cuentas si la cosa es de que te dicten la ecuación para que sólo la pases a código

  7. julio says:

    @AngelTc es cierto , pero en el post sabes a que me refiero.

    @4 ya lo entendí mejor. Ahora entienden por los concursos de programación los ganan los matemáticos? xD.

  8. RaD|Tz says:

    Primera vez que posteas algo realmente interesante.

  9. […] que Michoacano y los señores de Kobol me pueda perdonar, pero seguiré con la regla de «un minuto» para llegar […]

Leave a Reply