More actions
Bez shrnutí editace Značka: editor wikitextu 2017 |
Bez shrnutí editace |
||
Riadok 3: | Riadok 3: | ||
{{Pojmová mapa}} | {{Pojmová mapa}} | ||
== | == Rýchlokurz matematického operátora sumácie (<math>\sum</math> – Sigma) == | ||
Keďže pre spracovanie určitého objemu údajov na vstupe (zväčša uložených v množine, poli, zozname, a podobne) sa používajú v programovacích jazykoch zväčša cykly, počet operácií sa dá vyjadriť pomocou matematického operátora '''sumácie''' – <math>\sum</math>. | Keďže pre spracovanie určitého objemu údajov na vstupe (zväčša uložených v množine, poli, zozname, a podobne) sa používajú v programovacích jazykoch zväčša cykly, počet operácií sa dá vyjadriť pomocou matematického operátora '''sumácie''' – <math>\sum</math>. | ||
Napríklad: <math>\sum_{i=1}^{8} 1</math> znamená, že <math>i</math> začína na čísle 1 a pokračuje po 8 (vrátane). S každou iteráciou sa sčítava časť za operátorom (v tomto prípade sa teda číslo 1 sčíta presne 8 krát: <math>1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 | Napríklad: <math>\sum_{i=1}^{8} 1</math> znamená, že <math>i</math> začína na čísle 1 a pokračuje po 8 (vrátane). S každou iteráciou sa sčítava časť za operátorom (v tomto prípade sa teda číslo 1 sčíta presne 8 krát: <math>\overbrace{ 1+1+1+1+1+1+1+1 }^{8}</math>, výsledok: <math>\sum_{i=1}^{8} 1 = 8</math>). | ||
Toto by sa dalo vyjadriť v kóde | Toto by sa dalo vyjadriť v kóde takto:<syntaxhighlight lang="python3"> | ||
vysledok = 0 | vysledok = 0 | ||
for i in range(8): # vykoná sa 8 krát | for i in range(8): # vykoná sa 8 krát | ||
vysledok += 1 | vysledok += 1 | ||
print(vysledok) # 8 | print(vysledok) # 8 | ||
</syntaxhighlight>Sumácia môže mať rôzny názov a definíciu riadiacej premennej, ako aj hornú hranicu. | </syntaxhighlight>Sumácia môže mať rôzny názov a definíciu riadiacej premennej, ako aj hornú hranicu. Všetky nasledujúce zápisy sú platné: | ||
{| class="wikitable" | {| class="wikitable" | ||
|'''Matematický zápis''' | |||
|'''Zápis v Python kóde''' | |||
|- | |- | ||
| <math>\sum_{i=5}^{9} 1</math> | | <math>\sum_{i=5}^{9} 1</math> | ||
Riadok 38: | Riadok 40: | ||
Avšak, nemôžeme definovať negatívny krok. Napríklad, tento zápis nie je matematicky správny: <math>\sum_{j=10}^{0} 1</math> (<math>j</math> by nikdy nenabudlo hodnotu 0). | Avšak, nemôžeme definovať negatívny krok. Napríklad, tento zápis nie je matematicky správny: <math>\sum_{j=10}^{0} 1</math> (<math>j</math> by nikdy nenabudlo hodnotu 0). | ||
== Príklady == | === Príklady pre sumáciu === | ||
<quiz display="simple"> | |||
<quiz display=simple> | |||
{ Vypočítaj: | { Vypočítaj: | ||
|type="{}"} | |type="{}"} | ||
<span style="white-space: nowrap;">a) <math>\sum_{i=1}^{8} 1</math> = { 8 _2 }</span> | |||
<span style="white-space: nowrap;">b) <math>\sum_{i=1}^{5} 7</math> = { 35 _2 }</span> | |||
<span style="white-space: nowrap;">c) <math>\sum_{i=1}^{5} i</math> = { 15 _2 }</span> | |||
</quiz> | </quiz> | ||
{{Téma|Oblast=Kategória:Algoritmy a výpočtová zložitosť|Poradie=20}} | == Aritmetická postupnosť == | ||
Príklady vyššie sa dajú vypočítať manuálne. Ale čo ak by sme mali napríklad postupnosť 100 prvkov, napríklad: <math>\sum_{i=1}^{100} i</math>. | |||
V tomto prípade by sa postupnosť rozbalila ako <math>\overbrace{ 1+2+\cdots+99+100 }^{?}</math>. Ručne, číslo po čísle, by sme to sčítavali asi iba dlho... | |||
Avšak, múdri matematici si všimli, že medzi číslami platí určitý vzťah. Ak zoberieme v (rozbalenej) postupnosti vždy dva protiľahlé prvky a sčítame ich, výsledkom bude vždy rovnaké číslo. To znamená, že pre výpočet súčtu všetkých členov aritmetickej postupnosti vyššie nám stačí sčítať dva protiľahlé prvky (spravidla prvý a posledný prvok), vynásobiť ich počtom prvkov a vydeliť dvomi: | |||
[[Súbor:Aritmetická postupnosť 100 čísel.gif|stred|náhľad|542x542bod|Výpočet súčtu prvých 100 prvkov aritmetickej postupnosti.]] | |||
Výsledkok: <math>\sum_{i=1}^{100} i = 50 \times 101 = 5050</math>.{{Téma|Oblast=Kategória:Algoritmy a výpočtová zložitosť|Poradie=20}} | |||
[[Kategória:Algoritmy a výpočtová zložitosť]] | [[Kategória:Algoritmy a výpočtová zložitosť]] |
Verzia z 10:22, 22. marec 2025
Matematický operátor sumácie (), aritmetická postupnosť, určovanie počtu vykonaných operácií na základe kódu v určitom programovacom jazyku.
Rýchlokurz matematického operátora sumácie ( – Sigma)
Keďže pre spracovanie určitého objemu údajov na vstupe (zväčša uložených v množine, poli, zozname, a podobne) sa používajú v programovacích jazykoch zväčša cykly, počet operácií sa dá vyjadriť pomocou matematického operátora sumácie – .
Napríklad: znamená, že začína na čísle 1 a pokračuje po 8 (vrátane). S každou iteráciou sa sčítava časť za operátorom (v tomto prípade sa teda číslo 1 sčíta presne 8 krát: , výsledok: ).
Toto by sa dalo vyjadriť v kóde takto:
vysledok = 0
for i in range(8): # vykoná sa 8 krát
vysledok += 1
print(vysledok) # 8
Sumácia môže mať rôzny názov a definíciu riadiacej premennej, ako aj hornú hranicu. Všetky nasledujúce zápisy sú platné:
Matematický zápis | Zápis v Python kóde |
suma = 0
for i in range(5, 10):
suma += 1
| |
suma = 0
for i in range(n+1):
suma += 1
| |
suma = 0
i = ... # napr.: môže pochádzať z vonkajšieho cyklu
for j in range(1, n+2):
suma += (i + 1)
|
Avšak, nemôžeme definovať negatívny krok. Napríklad, tento zápis nie je matematicky správny: ( by nikdy nenabudlo hodnotu 0).
Príklady pre sumáciu
Aritmetická postupnosť
Príklady vyššie sa dajú vypočítať manuálne. Ale čo ak by sme mali napríklad postupnosť 100 prvkov, napríklad: .
V tomto prípade by sa postupnosť rozbalila ako . Ručne, číslo po čísle, by sme to sčítavali asi iba dlho...
Avšak, múdri matematici si všimli, že medzi číslami platí určitý vzťah. Ak zoberieme v (rozbalenej) postupnosti vždy dva protiľahlé prvky a sčítame ich, výsledkom bude vždy rovnaké číslo. To znamená, že pre výpočet súčtu všetkých členov aritmetickej postupnosti vyššie nám stačí sčítať dva protiľahlé prvky (spravidla prvý a posledný prvok), vynásobiť ich počtom prvkov a vydeliť dvomi:

Výsledkok: .