Was ist eine assoziative Operation?

Eine assoziative Operation kann sich auf Folgendes beziehen:

1. In der Mathematik ist eine assoziative Operation eine Berechnung, die unabhängig von der Gruppierung der Zahlen dasselbe Ergebnis liefert. Addition und Multiplikation sind beide assoziativ, Subtraktion und Division dagegen nicht. Sehen Sie sich beispielsweise die nachstehenden Berechnungen an.

Assoziativ

2+ (2 + 5) = 9

(2 + 2) +5 = 9

Nicht assoziativ

4- (2-1) = 3

(4-2) -1 = 1

In den zusätzlichen Beispielen spielt es keine Rolle, in welcher Reihenfolge die Zahlen hinzugefügt werden. Wenn Sie zuerst 2 + 5 hinzufügen und dann 2 hinzufügen oder 2 + 2 zuerst hinzufügen und dann 5 hinzufügen, lautet das Ergebnis 9 und macht es assoziativ. Auf der anderen Seite ist die Subtraktion nicht assoziativ, da eine Änderung der Gruppierung das Ergebnis ändert.

2. Beim Programmieren findet eine assoziative Operation statt, wenn keine Gruppierung vorhanden ist, wenn Operatoren die gleiche Priorität haben oder von links nach rechts oder umgekehrt ausgewertet werden. Ist dies in der Programmiersprache nicht der Fall, handelt es sich entweder um einen speziellen Operator oder es wird ein Syntaxfehler ausgegeben.

Addition und Subtraktion haben beispielsweise die gleiche Priorität und sind linksassoziativ. Wenn also keine Gruppierung mit Klammern vorhanden ist, werden die Operatoren von links nach rechts ausgewertet. Beispielsweise ist 4-3 + 1 gleich 2, da zuerst 4-3 berechnet wird, wobei das Ergebnis zu 1 addiert wird. Um diese Reihenfolge zu ändern, muss der Programmierer die Zahlen gruppieren, um den Ausdruck wie gewünscht zu berechnen. Wenn der Programmierer zuerst die 3 + 1-Berechnung durchführen möchte, kann er wie unten dargestellt mit Klammern gruppiert werden.

 4- (3 + 1) 

Dies zwingt 3 + 1 zuerst zu berechnen, wobei das Ergebnis (4) von 4 subtrahiert wird, was Null ergibt.

Bei den meisten Sprachen sind Additions-, Subtraktions-, Multiplikations- und Divisionsoperatoren linksassoziativ, während Zuweisungs-, Bedingungs- und Exponentiationsoperatoren rechtsassoziativ sind.

Operator, Programmierbegriffe