¿Sabes cómo las computadoras calculan ecuaciones de suma, resta, multiplicación y división?
Cuando se trata de suma, resta, multiplicación y división, cualquiera que haya aprendido la fórmula de multiplicación debería poder hacerlo.
Uno uno es uno, uno dos son dos. . . Es muy fácil tenerlo al alcance de tu mano.
La parte más difícil es simplemente la combinación de estos cuatro símbolos de operación, pero una operación tan simple realmente no es una tarea fácil para las computadoras.
En términos de velocidad informática, las computadoras nos superan con creces a usted y a mí.
En términos de facilidad de cálculo, tú y yo somos mejores que las computadoras.
¿Por qué dices eso?
Como ejemplo, encontremos el resultado de una expresión aritmética (también llamada expresión infija): 5 (6-3)*4 8/2=?
Para nosotros, La respuesta fácil a esta ecuación es 21. Entonces, ¿cómo llegó la computadora a este resultado?
Al hablar de este tema, primero debemos comprender dos conocimientos: expresiones de pila y postfix.
¿Qué es una pila?
Stack, también conocida como pila, es una tabla lineal con operaciones limitadas. La restricción es que las operaciones de inserción y eliminación solo se permiten en un extremo de la tabla. Este extremo se llama parte superior de la pila y el otro extremo se llama parte inferior. Insertar un nuevo elemento en una pila también se llama empujar, empujar o empujar. Es colocar el nuevo elemento encima del elemento superior de la pila, convirtiéndolo en un nuevo elemento superior. Eliminar elementos de una pila también se llama hacer estallar o hacer estallar; empujar. Salir de la pila, lo que elimina el elemento superior de la pila y hace que sus elementos adyacentes se conviertan en el nuevo elemento superior de la pila.
Puedes entender la pila de esta manera: la pila equivale a una botella vacía sin tapón. Poner algo en la botella se llama apilar y verter algo fuera de la botella se llama apilar. El fondo de la botella se llama fondo de la pila y la boca de la botella se llama parte superior de la pila. Aunque no es muy apropiado, todavía es posible entenderlo de esta manera.
¿Qué es una expresión postfija?
Las expresiones con sufijos también se denominan expresiones polacas inversas. Es un método para expresar expresiones inventado por el lógico polaco Lukasiewicz. Esta representación escribe el operador después del operando, por ejemplo, escribe a b como ab, por lo que también se le llama expresión de sufijo. La ventaja de esta representación es que se calcula en función del orden en que aparecen los operandos y operadores, sin necesidad de paréntesis, y también es conveniente para la evaluación mecánica. Para la expresión x:=(a b)*(c d), su sufijo es xab cd *:=.
El proceso informático de la expresión de operación anterior se divide aproximadamente en dos pasos:
Convertir la expresión infija en una expresión postfija
Ejecutando la expresión postfija el resultado se obtiene de la fórmula
Primero, se introduce el proceso de conversión a una expresión postfija.
El proceso de conversión sigue una regla (los símbolos se colocan en la pila, los números se generan):
Recorre cada número y símbolo de la expresión infija de izquierda a derecha
Si es un número, agréguelo Expresión postfix
Si es un símbolo, determine los paréntesis: si es un paréntesis izquierdo "(", empújelo directamente a la pila; si es un paréntesis derecho ")", luego tome los operadores de la pila y agréguelos a la expresión de sufijo. Deténgase hasta obtener "(" y elimine "(" de la pila
Si es un operador que no sea paréntesis, determine la prioridad. de este operador y el símbolo en la parte superior de la pila: su prioridad es menor que o Si es igual al símbolo en la parte superior de la pila, los símbolos en la pila aparecerán uno por uno y se agregarán al sufijo expresión y luego se inserta en la pila. De lo contrario, se insertará directamente en la pila
Hasta el final de atravesar la expresión infija, se obtiene la expresión del sufijo
Proceso detallado:
Salida 5 y empújela a la pila; la salida actual es 5, y la pila es;
Cuando encuentre (, empújela a la pila; la salida actual es 5, y está en la parte inferior de la pila. El orden desde la parte superior de la pila hasta la parte superior de la pila es (;
Salida 6, empuje el signo menos en la pila y salida 3; el actual la salida es 56 3, y el orden desde la parte inferior de la pila hasta la parte superior de la pila es (-;
Enter to), para hacer coincidir (, el símbolo superior de la pila aparece hasta que ( es apareció; la salida actual es 56 3-, en la pila;
Cuando se encuentra un signo de multiplicación, se genera 6 y la salida actual es 56 3- 4. El orden desde la parte inferior de la pila hasta la parte superior de la pila es *;
Cuando se encuentra, dado que la prioridad de es menor que *, todos los elementos de la pila se sacan de la pila y se insertan en la pila, la salida actual es 56 3; - 4*, el orden desde la parte inferior de la pila hasta la parte superior de la pila es;
Cuando se encuentran 10 salidas, el signo de división se inserta en la pila y la salida actual es 56 3- 4*; 8, el orden desde la parte inferior de la pila hasta la parte superior de la pila es /;
Encontré 2 salidas; la salida actual es 56 3- 4* 8 2, y el orden desde la parte inferior de la pila es pila hasta la parte superior de la pila es /;
La expresión termina, y todo lo que hay en la pila sale en orden, y finalmente es 56 3- 4* 8 2/ ;
El segundo es el proceso de ejecución de la expresión de sufijo. El proceso de ejecución también sigue una regla:
Recorre cada expresión de sufijo de izquierda a derecha. Números y símbolos,
Si. encuentren números, serán empujados a la pila.
Cuando encuentren símbolos, colocarán los dos números en la parte superior de la pila, y los resultados obtenidos al realizar operaciones con los tres serán empujados a la pila. Apila hasta que finalmente se obtenga el resultado de la operación
56 3 se empujan hacia la pila uno por uno, y luego se encuentran con el signo menos, el orden desde la parte inferior de la pila hasta el final; la parte superior de la pila es 56 3;
El 3 en la parte superior de la pila y el 6 se sacan de la pila, se restan para obtener 3 y el 3 se coloca en la pila en este momento, el orden; desde la parte inferior de la pila hasta la parte superior de la pila es 53;
4 se empuja a la pila, y luego se encuentra un signo de multiplicación, desde la parte inferior de la pila hasta la parte superior de; la pila El orden es 53 4;
El 4 y el 3 en la parte superior de la pila se sacan, se multiplican para obtener 12 y en este momento se empuja 12 a la pila, el orden de la pila; de la parte inferior de la pila a la parte superior es 512;
Cuando se encuentra un signo más, 12 y 5 en la parte superior de la pila se sacan de la pila, se suman para obtener 17, y 17 se empuja a la pila. pila; en este momento, solo hay un 17 en la pila;
82 se coloca en la pila en secuencia y luego se encuentra el signo de división; en este momento, el orden desde la parte inferior la pila hasta la parte superior de la pila es 178 2;
Coloque el 2 y el 8 en la parte superior de la pila, divida para obtener 4 y empuje 4 en la pila. En este momento, el orden desde la pila; desde la parte inferior de la pila hasta la parte superior de la pila es 174;
Cuando se encuentra un signo más, aparecen 4 y 17 en la parte superior de la pila. Si desea sumar 21, inserte 21. la pila;
La expresión termina, se genera el resultado 21 y la pila se vuelve nula.
¿Cómo te sientes después de leerlo?
¿Es complicado?
La verdad es que no está mal, 233. . .
Es posible que algunos amigos quieran volver a quejarse, sabiendo que estos procesos son inútiles. ¿Se le pedirá que escriba este proceso en el trabajo real?
Sí, es posible que el trabajo no requiera que usted comprenda cómo se realiza el cálculo subyacente. Debe decirle a la computadora estos números y operadores, y el resto simplemente está esperando obtener los resultados.
Quiero decir que lo importante en programación no es si puedes completar tareas de desarrollo simples, sino si puedes ver las ideas de programación detrás de las tareas.
¡Los pensamientos determinan la altura!
Hasta dónde piensas, hasta dónde puedes llegar~~~~~~~~