Toggle menu
Toggle preferences menu
Toggle personal menu
Neprihlásený/á
Your IP address will be publicly visible if you make any edits.
Bez shrnutí editace
Značka: editor wikitextu 2017
Bez shrnutí editace
Riadok 3: Riadok 3:
{{Pojmová mapa}}
{{Pojmová mapa}}


== Sumácia ==
== 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 = 1 * 8 = 8</math>, výsledok je teda <math>\sum_{i=1}^{8} 1 = 8</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>\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 ako napríklad:<syntaxhighlight lang="python3">
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. Napríklad, všetky nasledujúce zápisy sú platné:
</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="{}"}
- <math>\sum_{i=1}^{8} 1</math> { 8 || Správne, jednotka sa sčíta 8-krát (inými slovami: <math>8 \times 1 = 8</math>) }
<span style="white-space: nowrap;">a) <math>\sum_{i=1}^{8} 1</math> = { 8 _2 }</span>
- <math>a</math> { 13 || yes }
 
<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: i=181 znamená, že i 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: 1+1+1+1+1+1+1+18, výsledok: i=181=8).

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
i=591
suma = 0
for i in range(5, 10):
    suma += 1
i=0n1
suma = 0
for i in range(n+1):
    suma += 1
j=1n+1(i+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: j=1001 (j by nikdy nenabudlo hodnotu 0).

Príklady pre sumáciu

Vypočítaj:

a) i=181 =

b) i=157 =

c) i=15i =


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: i=1100i.

V tomto prípade by sa postupnosť rozbalila ako 1+2++99+100?. 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ýpočet súčtu prvých 100 prvkov aritmetickej postupnosti.

Výsledkok: i=1100i=50×101=5050.