# 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) ```