Asociativita je valgebře vlastnostbinárníoperace, která znamená, že nezáleží, jak použijeme závorky ve výrazu, kde je více operandů, tedy v jakém pořadí budeme tento výraz počítat. Například operace sčítání čísel jeasociativní, takže
.
Vinformatice se často názevasociativita používá i pro operace, které asociativní v matematickém smyslu nejsou. Pak rozlišujemeasociativitu zleva doprava, jaká je například u odečítání, kdya - b - c
znamená(a - b) - c
, aasociativitu zprava doleva, jaká je třeba u umocňování, kdea ↑ b ↑ c
znamenáa ↑ (b ↑ c)
(místo↑
se v některýchprogramovacích jazycích používá**
, v jiných^
).[1]
Binární operace ∗ (tj. abstraktní operace se dvěma operandy symbolizovaná znakem ∗) je na množiněSasociativní, jestliže platí
- (x ∗y) ∗z =x ∗ (y ∗z)
pro každéx,y az vS.
Nejznámější příklady asociativních binárních operací jsousčítání (a + b) anásobení (a . b)reálných čísel.
- (2 + 3) + 8 = 5 + 8 = 13 = 2 + 11 = 2 + (3 + 8)
- (7×3)×2 = 21×2 = 42 = 7×6 = 7×(3×2)
Další ukázky asociativních binárních operací jsou například:sčítání anásobeníkomplexních čísel, sčítánívektorů,průnik asjednocenímnožin, operacemaximum aminimum.
Mezi binární operace, které nejsou asociativní, patří napříkladodčítání (a − b),dělení (a : b) aumocňování (ab) čísel nebovektorové násobení vektorů.
.
U neasociativních operací je tedy třeba buď důsledně závorkovat, nebo se dohodnout na implicitním pořadí provádění operací – pak se někdy mluví o operacíchasociativních zleva čiasociativních zprava. Z předvedených příkladů je odčítání levě asociativní, výraz 10 − 5 − 3 se chápe jako (10 − 5) − 3, naopak umocňování je asociativní zprava,
(neboť levá asociativita by u mocnění byla neužitečná – stejného výsledku lze díky pravidlům pro mocniny zapsat pomocí součinu exponentů:
).[1]
Asociativita operace je důležitá, protože umožňuje nepoužívat závorky a např. zavéstmocniny s přirozeným mocnitelem.
- HEROUT, Pavel, 2001.Učebnice jazyka C. 3., upravené vyd. České Budějovice: Kopp. 269 s.ISBN 80-85828-21-9.