Explique por qué A * B * C y (A * B) * C no son lo mismo.

Este es un problema sobre la asociatividad de un operador binario dado.

Los operadores binarios toman dos elementos y generan un solo elemento. Todos los operadores aritméticos con los que está familiarizado (+ – * /) son operadores binarios. Esto contrasta con un operador unario que devuelve un elemento de un único elemento. La negación de (signo menos) en un número es un ejemplo de una operación unaria.

Hay algunas propiedades de los operadores binarios que se estudian con frecuencia. Estos son:

  1. asociatividad
  2. comutividad
  3. distributividad

Asociatividad : un operador binario es asociativo si la secuencia en la que resuelve su operación no importa. Formalmente, se escribe como a * (b * c) = (a * b) * c = a * b * c. La suma y la multiplicación de números regulares son asociativas. ej. 1+ (2 + 3) = (1 + 2) +3 y, por lo tanto, puede escribirse sin ambigüedades como 1 + 2 + 3.

La resta y la división no son asociativas: puedes averiguar por ti mismo por qué. Me gustaría ilustrar el punto usando el operador de exponenciación. Considere (2 ^ 3) ^ 2 = 64 mientras que 2 ^ (3 ^ 2) = 512, por lo tanto, la exponenciación no es asociativa. En este caso, escribir 2 ^ 3 ^ 2 se consideraría de mal gusto ya que existe un amplio margen para la interpretación errónea.

TL; DR: cuando uno ve A * B * C, se interpreta convencionalmente como (A * B) * C, y por lo tanto siempre serán lo mismo. La cuestión en cuestión es si (A * B) * C puede ser diferente de A * (B * C), y le he dado el ejemplo de resta, división y exponenciación.

Quizás la operación no sea asociativa y también, por cualquier razón, se realice implícitamente de derecha a izquierda. Por ejemplo, podría ser una notación para exponenciación.

Pero aquí está la respuesta de la informática (parece apropiado, dado el asterisco en la pregunta). Incluso si el resultado matemático es el mismo, a veces el resultado computacional puede ser diferente. Esto se debe a que el orden de las operaciones a menudo cambiará qué error se introduce primero, lo que hace que el paso de multiplicación final sea una multiplicación ligeramente diferente con una respuesta ligeramente diferente.

En algunos idiomas, el compilador puede definir el orden de multiplicación si no se utilizan paréntesis. En otros, la multiplicación es de derecha a izquierda por defecto. En cualquiera de esos casos, el segundo sería diferente porque obliga a un cierto orden de operaciones, suponiendo que se usen paréntesis para ese propósito.

Por ejemplo, hecho de derecha a izquierda, luego de izquierda a derecha, y redondeando a dos dígitos decimales significativos (piense que está en notación científica si lo desea):

1/9 * 1/7 * 1/3 = 0.11 * (0.14 * 0.33) = 0.11 * 0.046 = 0.0051

(1/9 * 1/7) * 1/3 = (0.11 * 0.14) * 0.33 = 0.015 * 0.33 = 0.0050

La respuesta exacta es 1/189, que está más cerca de 0.0053. (La respuesta exacta para el problema de 0.11 * 0.14 * 0.33 es 0.005082. Suponga que los recíprocos ya están almacenados como variables; la división no es una operación que se muestra arriba).

Los errores se propagan de manera diferente según el orden de las operaciones, y esto también es cierto cuando los números de coma flotante usan 53 dígitos significativos en binario (o 52 bits para la mantisa, con el primer ‘1’ antes del punto decimal implícito).

En general, [matemática] a * b * c [/ matemática] no está bien definida, porque podría referirse a [matemática] (a * b) * c [/ matemática] o [matemática] a * (b * c ) [/ math] Si estos dos elementos son iguales, usted define [math] a * b * c [/ math] como su valor común, pero este no es siempre el caso.

Un ejemplo es la operación de soporte de mentira en matrices, [matemáticas] [a, b] = ab – ba. [/ math] Esto no es una operación asociativa, ya que [math] [[a, b], c] \ neq [a, [b, c]] [/ math] en general. Por lo tanto, no puede ignorar los corchetes para esta operación.

Hagamos un ejemplo.

Hagamos

A-2

B-3

C-4

2 * 3 * 4 = 24

Hagámoslo de otra manera ahora

(2 * 3) * 4 = 24

Las respuestas siguen siendo las mismas debido a PEMDAS.

PEMDAS es una manera fácil de recordar el orden de las operaciones.

Lo repasaré contigo.

P- Paréntesis

E- Exponentes

M- Multiplicar

D- Devision

A- Además

S- Resta

Cada vez que se acerque a un problema y quiera resolverlo, vaya en el orden de esta operación. Espero que esto ayude.

Aquí, * denota una operación que no es particularmente multiplicación. (a * b) * c significa que a se opera con b y el resultado se opera con c. Si * denota división, entonces seguramente a / b / c no es igual a (a / b) / c. El ejemplo 10/5/2 es igual a 10/2 = 5 mientras que (10/5) / 2 = 1.

Todo depende de cómo defina la función *. Tiene muchos usos, algunos de los cuales se enumeran aquí: https://en.wikipedia.org/wiki/As… .

El público en general utiliza principalmente este signo para la multiplicación. En este caso, A * B * C y (A * B) * C son iguales porque la multiplicación es asociativa. Puede poner paréntesis alrededor de cualquiera de los factores y producirán el mismo producto. Es solo el orden en que lo haces es diferente.

En realidad es bastante fácil de responder, pero aquí va:

Para resolver A * B * C requiere que multiplique en orden, primero A * B, luego esa respuesta multiplicada por C. Cuando se agregan paréntesis, primero debe resolver primero la ecuación dentro de los paréntesis y luego continuar con el resto de la ecuación. Para resolver el segundo ejemplo, primero tendría que multiplicar A y B y luego tomar la respuesta resultante y multiplicarla por C. Dado que esto es bastante fácil de entender, no incluiré un ejemplo.

No son lo mismo en 24 bits (3 bytes de dos paréntesis y un espacio). Sin embargo, si está preguntando acerca de la interpretación matemática de lo que significan esas dos expresiones, son idénticas debido a la propiedad asociativa del operador de multiplicación en matemáticas, que en este caso representa el asterisco.

Debes mirar algunos objetos bastante oscuros para que la asociatividad falle. El objeto no asociativo más común son los Octonions.

Bueno, aquí está lo que en realidad es lo mismo porque si tuviera que sustituir A, B y C con cualquier número que tengan y produzca los mismos resultados, intentemos esto con un ejemplo.

A = 2

B = 3

C = 4

(A * B) * C = (6) * 4 = 24

A * B * C = 2 * 3 * 4 = 24.

Por lo tanto, es lo mismo.

En realidad, son lo mismo. Conozco muy bien este tema. Hice esto en quinto grado; Tengo 13 años ahora. Digamos A = 1, B = 2 y C = 3. Para el primero, sería 1 × 2 × 3, que es igual a 6. Para el segundo, sería (1 × 2) × 3, que también es igual a seis. Debido al orden de las operaciones, la respuesta sería la misma para ambas expresiones, convertidas en una ecuación, porque todos los términos se multiplican. Debido a eso, va de izquierda a derecha, independientemente del paréntesis, lo que lleva a la misma respuesta.

El orden de operación dice que el paréntesis viene antes que exponencial. Por lo tanto, la C se multiplica dos veces en el segundo ejemplo, pero solo una vez en el primer ejemplo.

Bueno, en el segundo caso, claramente multiplicas A * B primero.

Depende de la fórmula, puede ser igual o no.