# Sommen van rijen
In de wiskunde kennen we de zogenoemde rekenkundige rij en ook de meetkundige rij. Op deze pagina zijn een aantal Python programmeeropgaven en uitwerking gegeven met betrekking tot het sommeren van deze rijen.
## Som van een rekenkundige rij
Schrijf een functie genaamd `som_rekenkundige_rij` die de som van een
rekenkundige rij (zie eventueel [Rekenkundige rij - Wikipedia](https://nl.wikipedia.org/wiki/Rekenkundige_rij)) berekent en teruggeeft. De som *Sn* van een rekenkundige rij van *n* getallen met een beginwaarde *t1* en een verschil van *v* is gelijk aan:
*Sn = t1 + (t1 + v) + (t1 + 2v) + ... + (t1 + (n - 1)v)*
Deze functie heeft de volgende parameters: `beginwaarde`, `verschil` en`aantal`. Deze functie moet als volgt gebruikt kunnen worden:
```python
print(som_rekenkundige_rij(1, 1, 9))
```
Het correcte antwoord is dan:
```
45
```
### Oplossing 1: iteratief
```python
def som_rekenkundige_rij(beginwaarde, verschil, aantal):
som = 0
for teller in range(aantal):
som = som + beginwaarde + teller * verschil
return som
```
### Oplossing 2: Gauss
Bij deze oplossing maken we gebruik van de formule die volgens [Rekenkundige rij - Wikipedia](https://nl.wikipedia.org/wiki/Rekenkundige_rij) vaak aan Gauss wordt toegeschreven:
*Sn = nt1 + ½(n-1)nv*
```python
def som_rekenkundige_rij(beginwaarde, verschil, aantal):
return aantal * beginwaarde + 1/2 * (aantal - 1) * aantal * verschil
```
## Som van een meetkundige rij
Schrijf een functie genaamd `som_meetkundige_rij` die de som van een
meetkundige rij (zie eventueel [Meetkundige rij - Wikipedia](https://nl.wikipedia.org/wiki/Meetkundige_rij)) berekent en teruggeeft. De som *Sn* van een meetkundige rij van *n* getallen met een beginwaarde *a* en een rede *r* is gelijk aan:
*Sn = a + ar + ar2 + ar3 + ... + arn-1*
Deze functie heeft de volgende parameters: `beginwaarde`, `rede` en`aantal`. Deze functie moet als volgt gebruikt kunnen worden:
```python
print(som_meetkundige_rij(1, 2, 10))
```
Het correcte antwoord is dan:
```
1023
```
### Oplossing 1: iteratief
```python
def som_meetkundige_rij(begin_waarde, rede, aantal):
som = 0
for macht in range(aantal):
som = som + begin_waarde * rede ** macht
return som
```
### Oplossing 2: formule
Bij deze oplossing maken we gebruik van de formule die gegeven is op [Meetkundige rij - Wikipedia](https://nl.wikipedia.org/wiki/Meetkundige_rij):
*Sn = a(1-rn)/(1-r)*
```python
def som_meetkundige_rij(begin_waarde, rede, aantal):
return begin_waarde * (1 - rede ** aantal) / (1 - rede)
```