Diferencia entre revisiones de «Notación polaca inversa»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Cally Berry (discusión · contribs.)
m Revertidos los cambios de 190.60.226.68 (disc.) a la última edición de Rjelves
Línea 30: Línea 30:
* La adopción casi universal de la notación algebraica en los sistemas educativos hace que no haya muchas razones prácticas inmediatas para que los alumnos aprendan la notación polaca inversa. No obstante, muchos estudiantes afirman que, una vez aprendida, la notación polaca inversa simplifica en gran manera el cálculo de expresiones complejas.
* La adopción casi universal de la notación algebraica en los sistemas educativos hace que no haya muchas razones prácticas inmediatas para que los alumnos aprendan la notación polaca inversa. No obstante, muchos estudiantes afirman que, una vez aprendida, la notación polaca inversa simplifica en gran manera el cálculo de expresiones complejas.


* muy clara para evitar confundir, por ejemplo, 12 34+ (=46) de 123 4+ (=127) o 1 234+ (=235).
* Es difícil usar la notación polaca inversa al escribir a mano, dada la importancia de los espacios para separar operandos. Se requiere un caligrafía muy clara para evitar confundir, por ejemplo, 12 34+ (=46) de 123 4+ (=127) o 1 234+ (=235).


* Las calculadoras RPN son relativamente raras. Forzado a usar una calculadora algebraica, el usuario de una calculadora RPN típicamente comete más errores de lo normal debido a sus hábitos de uso normales. No obstante, esto no es un problema tan grave en la actualidad, debido a que muchos sistemas operativos pueden emular calculadoras RPN.
* Las calculadoras RPN son relativamente raras. Forzado a usar una calculadora algebraica, el usuario de una calculadora RPN típicamente comete más errores de lo normal debido a sus hábitos de uso normales. No obstante, esto no es un problema tan grave en la actualidad, debido a que muchos sistemas operativos pueden emular calculadoras RPN.


== El algoritmo RPN ==
== El algoritmo RPN ==

Revisión del 21:30 22 may 2009

Notación Polaca Inversa (RPN)

La Notación Polaca Inversa (RPN en inglés, Reverse polish notation) es un método de introducción de datos alternativo al algebraico. Fue creado por el matemático polaco Jan Łukasiewicz en 1920.

En la década de 1960 ese método fue introducido en las computadoras. Posteriormente, Hewlett-Packard lo aplicó por primera vez en la calculadora de sobremesa HP-9100A en 1968.

Su principio es el de evaluar los datos directamente cuando se introducen y manejarlos dentro de una estructura LIFO (Last In First Out), lo que optimiza los procesos a la hora de programar.

Básicamente la diferencias con el método algebraico son que, al evaluar los datos directamente al introducirlos, no es necesario ordenar la evaluación de los mismos, y que para ejecutar un comando, primero se deben introducir todos sus argumentos, así, para hacer una simple suma 'a+b=c' el RPN lo manejaría a b +, dejando el resultado 'c' directamente.

Nótese que la notación polaca inversa no es literalmente la imagen especular de la notación polaca: con operadores no-conmutativos (como la resta o la división), el orden de los operandos ha de permanecer constante. Así pues, "6/2" se traduce a la notación polaca como "/ 6 2" y a la notación polaca inversa como "6 2 /". Con números superiores a 9, también se sigue la costumbre de escribirlos de izquierda a derecha.


Ventajas

  • Los cálculos se realizan secuencialmente según se van introduciendo operadores, en vez de tener que esperar a escribir la expresión al completo. Debido a esto, se cometen menos errores al procesar cálculos complejos.
  • El proceso de apilación permite guardar resultados intermedios para un uso posterior. Esta característica permite que las calculadoras RPN computen expresiones de complejidad muy superior a la que alcanzan las calculadoras algebraicas.
  • No requiere paréntesis ni reglas de preferencia, al contrario que la notación algebraica, ya que el proceso de apilamiento permite calcular la expresión por etapas.
  • En las calculadoras RPN, el cálculo se realiza sin tener que apretar la tecla "=" (aunque se requiere pulsar la tecla "Enter" para añadir cifras a la pila).
  • El estado interno de la calculadora siempre consiste en una pila de cifras sobre las que se puede operar. Dado que no se pueden introducir operadores en la pila, la notación polaca inversa es conceptualmente más sencilla y menos dada a errores que otras notaciones.
  • En términos educativos, la notación polaca inversa requiera que el estudiante comprenda la expresión que se está calculando. Copiar una expresión algebraica directamente a una calculadora sin comprender la aritmética dará un resultado erróneo.

Desventajas

  • La adopción casi universal de la notación algebraica en los sistemas educativos hace que no haya muchas razones prácticas inmediatas para que los alumnos aprendan la notación polaca inversa. No obstante, muchos estudiantes afirman que, una vez aprendida, la notación polaca inversa simplifica en gran manera el cálculo de expresiones complejas.
  • Es difícil usar la notación polaca inversa al escribir a mano, dada la importancia de los espacios para separar operandos. Se requiere un caligrafía muy clara para evitar confundir, por ejemplo, 12 34+ (=46) de 123 4+ (=127) o 1 234+ (=235).
  • Las calculadoras RPN son relativamente raras. Forzado a usar una calculadora algebraica, el usuario de una calculadora RPN típicamente comete más errores de lo normal debido a sus hábitos de uso normales. No obstante, esto no es un problema tan grave en la actualidad, debido a que muchos sistemas operativos pueden emular calculadoras RPN.

El algoritmo RPN

El algoritmo que utilizan las calculadoras RPN es relativamente simple:

  • Si hay elementos en la bandeja de entrada
    • Leer el primer elemento de la bandeja de entrada.
    • Si el elemento es un operando.
      • Poner el operando en la pila.
    • Si no, el elemento es una funcion (los operadores, como "+", no son más que funciones que toman dos argumentos).
      • Se sabe que la función x toma n argumentos.
      • Si hay menos de n argumentos en la pila
        • (Error) El usuario no ha introducido suficientes argumentos en la expresión.
      • Si no, tomar los últimos n operandos de la pila.
      • Evaluar la función con respecto a los operandos.
      • Introducir el resultado (si lo hubiere) en la pila.
  • Si hay un sólo elemento en la pila
    • El valor de ese elemento es el resultado del cálculo.
  • Si hay más de un elemento en la pila
    • (Error) El usuario ha introducido demasiados elementos.

Ejemplo

La expresión algebraica 5+((1+2)*4)-3 se traduce a la notación polaca inversa como 5 1 2 + 4 * + 3 - y se evalúa de izquierda a derecha según se muestra en la siguiente tabla. La "Pila" es la lista de los valores que el algorimo mantiene en su memoria después de realizar la operación dada en la segunda columna.

Entrada Operación Pila Comentario
5 Introducir en la pila 5
1 Introducir en la pila 5, 1
2 Introducir en la pila 5, 1, 2
+ Suma 5, 3 Tomar los dós últimos valores de la pila (1, 2) y sustituirlos por el resultado (3)
4 Introducir en la pila 5, 3, 4
* Multiplicación 5, 12 Tomar los dos últimos valores de la pila (3, 4) y sustituirlos por el resultado (12)
+ Suma 17 Tomar los dós últimos valores de la pila (5, 12) y sustituirlos por el resultado (17)
3 Introducir en la pila 17, 3
Resta 14 Tomar los dos últimos valores de la pila (17, 3) y sustituirlos por el resultado (14)

Al finalizar el cálculo, el resultado (en este caso, 14) aparece como el único elemento en la pila.

Otros datos

  • HP-15C ha sido posiblemente la calculadora RPN más popular, hasta los puntos de que existe una petición online para que HP vuelva a fabricarla[1] ya que adquirir un ejemplar de segunda mano en buen estado de HP-15C cuesta varios cientos de dólares.
  • Google ha desarrollado un emulador de calculadora RPN para el iPhone de Apple.[2]