[Pyhon] Problema con operadores

Iniciado por kerith, 4 Enero 2011, 23:07 PM

0 Miembros y 4 Visitantes están viendo este tema.

kerith

Buenas, vengo a consultarles sobre un problema que me ha surgido y no se como solucionar.

El caso es que estoy desarrollando una aplicación para que factorize polinomios, y necesito alguna forma de manejar los operadores entre monomios.

Necesito que la función main() recoja un numero variable de operadores en una lista y que luego opere con los coeficientes de los monomios (que están en otra lista).

Por ahora se me ha ocurrido que podría recoger cada operador en un booleano (true para + y false para -, por ejemplo), hacer una lista y mandarlos a la función. Luego, con sentencias de control, invertir cada coeficiente en función del booleano que toque.
Así, por ejemplo, si tenemos los coeficientes [2, 3, 4] y la lista de booleanos [true, false], habría que convertir los coeficientes en [2, 3, -4], y luego sumarlos.

No creo que me haya explicado bien, pero bueno :D.

¿Voy por el buen camino?

Igual es pedir demasiado, pero la verdad es que ando hecho un lío y no estoy seguro de ir por el camino correcto.

Como siempre, gracias de antemano
salu2, kerith

Solo me arrepiento de no vivir lo suficiente para saciar mi curiosidad.

braulio--

Pero... puedes guardar los símbolos (+ y -) en la lista de coeficientes no? Me refiero a que la lista de coeficientes sea [-3, 2, -5] (directamente con el símbolo)

kerith

Si, pero necesito la lista de coeficientes limpia para utilizarla en otras funciones.

Solo me arrepiento de no vivir lo suficiente para saciar mi curiosidad.

braulio--

#3
Pero puedes sacar el número principal con la función abs() (saca el valor absoluto)

>>> abs(-4)
4


¿Era esa la única duda que tenías sobre el planteamiento del programa?

leogtz

Yo lo veo como si tratara de implementar un evaluador de expresiones.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

kerith

Buenas, gracias a los dos por responder.

Vamos por partes:

Respecto a lo de cambiar la listas en función  los operadores, tengo dos formas de hacerlo:
- La primera es, en main(), una vez recogida la lista de coeficientes, crear otra lista con los coeficientes cambiados y así tener dos listas distintas en otras funciones.
- La segunda es convertir directamente los coeficientes según los vaya recogiendo y luego, en otras funciones, pasarle a cada uno la función abs(). Mi pregunta es, cuál consumiría más memoria?

Lo siguiente:
Cita de: braulio-- en  5 Enero 2011, 01:04 AM
¿Era esa la única duda que tenías sobre el planteamiento del programa?

No, por supuesto que no:), pero creo que el resto de problemas debería resolverlos yo mismo, sino no aprenderé:).

La respuesta de Leo Gutiérrez:
Cita de: Leo Gutiérrez. en  5 Enero 2011, 01:22 AM
Yo lo veo como si tratara de implementar un evaluador de expresiones.
Parece interesante, y no solamente para este programa, me pondré a buscar info al respecto. Conoces alguna buena página que trate sobre el tema?

Muchas gracias a los dos por responder.

salu2, kerith.

Solo me arrepiento de no vivir lo suficiente para saciar mi curiosidad.

braulio--

Si he entendido bien lo que dices yo creo que consumiría menos memoria la segunda (además de ser más intuitiva).