Showing posts with label problemas aritméticos. Show all posts
Showing posts with label problemas aritméticos. Show all posts

Monday, August 12, 2019

Sobre el reto 8/2(2+2)



Los retos aritméticos en Internet, muchas veces a través de las redes sociales, suelen llevar trampa, para que el lector se equivoque y cuando le dicen la razón, entienda el truco. He aquí el más polémico de los que se han publicado.

Hay un nuevo reto aritmético en Internet que pregunta el resultado de la operación 8/2(2+2). Realmente parece fácil pero tiene cierto truco, o al menos eso es lo que pretende que parezca. Veamos cómo resolverlo. En primera instancia, hay unos paréntesis, lo cual significa que debemos hacer la operación dentro del paréntesis primero. En este caso, tenemos (2+2). Fácil, la respuesta es 4. Entonces, lo que tendremos es la expresión 8/2(4). Lo que causa confusión ocurre aquí. ¿Qué debemos hacer primero, 2(4), es decir, multiplicar 2 por 4 o bien, 8/2, es decir, la división de 8 entre 2.

Antes de responder a esto, hay que aclarar que la expresión es ambigua y los lenguajes de programación por ejemplo, definen algo que llaman "precedencia de operadores", de manera que indican cómo la máquina, en el lenguaje de aplicación particular, va a realizar las operaciones. Normalmente primero se hacen multiplicaciones y divisiones y después sumas y retas. Si -como en este caso- las operaciones tienen la misma precedencia, se hacen de izquierda a derecha. Tomando en cuenta eso, entonces tendríamos que hacer 8/2 = 4 y entonces después multiplicar por el 4 que está en el paréntesis, lo que daría como resultado final de 16. Por ejemplo, si ponemos esta operación a Google, sí, el buscador, que tiene integrado una calculadora, éste dará este resultado y además, mostrará la expresión como (8/2) * (2+2).

Pero hay quien dice que hay que hacer primero 2(4), que es 2 por 4, lo cual da 8. Entonces, finalizamos la operación con 8/8 que da como resultado final 1. Y si consideramos la precedencia de operadores, este resultado estaría equivocado pero... ¿lo está? Veamos:

La precedencia de operadores es un invento de los lenguajes de programación, porque en matemáticas podemos cambiar esta precedencia usando paréntesis. Si queremos que una expresión no sea ambigua, como en el caso que nos ocupa, entonces pondremos (8/2) * (2+2) (como precisamente pone Google) o bien, 8 / (2*(2+2)), dependiendo qué queremos expresar. Curiosamente, en matemáticas muchas veces tenemos expresiones como ésta: 8/2c, donde c=4. Y aquí cualquier matemático podría decir: "sustituyo la c por el 4 y multiplico por 2 y entonces hago la división. Y por ende, el resultado final es 1". Y es que si pongo 2c, es claro que es equivalente a 2 por c (que se escribe en lenguaje de las computadoras "2 * c", donde el "*" es el símbolo de multiplicación (para evitar confundirlo con la letra "x"). Entonces, la precedencia "la cambiamos" porque asumimos que 2c es multiplicar "2 * c" primero y luego hacer la división.

El resultado que entrega Google


Cabe decir que en matemáticas no existe la precedencia de operadores y desde que empecé a estudiar aritmética y matemáticas, desde que fui a la escuela, nadie me enseñó qué operación hay que hacer primero. Esto, repito, se inventó para poder definir con precisión las operaciones matemáticas y su orden cuando se escriben expresiones en un lenguaje de programación y sin embargo, en este caso, podrían existir lenguajes de programación que decidieran otra jerarquía o precedencia de operadores por las razones de diseño que consideren. ¿Qué queremos decir con todo esto? Que el lector puede dar la respuesta que quiera, 16 o 1. Ambas son correctas porque la expresión es simplemente ambigua.

Desde luego que esta ambigüedad es lo que provoca la discusión de qué resultado es el correcto. La realidad en matemáticas es que si queremos saber el resultado correcto, hay que poner los paréntesis adecuados para saber en qué orden hay que hacer las operaciones.