-
Notifications
You must be signed in to change notification settings - Fork 0
sommen_en_producten
Op deze pagina zijn een aantal Python programmeeropgaven en uitwerkingen gegeven met betrekking tot het optellen of vermenigvuldigen van een rij opeenvolgende getallen.
Schrijf een functie genaamd som_van_getallen die de som S van alle natuurlijke getallen van b tot en met e berekent en teruggeeft. Wiskundig kunnen we dit als volgt noteren:

Deze functie heeft de volgende parameters: beginwaarde en eindwaarde. Deze functie moet als volgt gebruikt kunnen worden:
print(som_van_getallen(1, 9))
print(som_van_getallen(9, 1))
print(som_van_getallen(9, 9))De juiste uitvoer is dan
45
0
9
def som_van_getallen(beginwaarde, eindwaarde):
som = 0
huidige = beginwaarde
while huidige <= eindwaarde:
som = som + huidige
huidige = huidige + 1
return somOmdat het aantal herhalingen bekend is, kan beter een for-loop gebruikt worden.
def som_van_getallen(beginwaarde, eindwaarde):
som = 0
for getal in range(beginwaarde, eindwaarde + 1):
som = som + getal
return somBij deze oplossing maken we gebruik van de formule die volgens Rekenkundige rij - Wikipedia vaak aan Gauss wordt toegeschreven:
S = ½(b+e)(e-b+1)
def som_van_getallen(beginwaarde, eindwaarde):
if (beginwaarde > eindwaarde):
return 0
return 1/2 * (beginwaarde + eindwaarde) * (eindwaarde - beginwaarde + 1)We kunnen de herhaling ook implememteren met behulp van een recusieve functie.
def som_van_getallen(beginwaarde, eindwaarde):
if beginwaarde > eindwaarde:
return 0
return beginwaarde + som_van_getallen(beginwaarde + 1, eindwaarde)Omdat de rij een rekenkundige rij is met beginwaarde b, een verschil van 1 en een aantal van e-b+1 kunnen we ook de functie die de som van een rekenkundige rij berekent en teruggeeft gebruiken. De functie hebben we al eerder geschreven, zie sommen_van_rijen.md.
Schrijf een functie genaamd product_van_getallen die het product P van alle natuurlijke getallen van b tot en met e berekent en teruggeeft. Wiskundig kunnen we dit als volgt noteren:

Deze functie heeft de volgende parameters: beginwaarde en eindwaarde. Deze functie moet als volgt gebruikt kunnen worden:
print(product_van_getallen(3, 9))
print(product_van_getallen(9, 3))
print(product_van_getallen(3, 3))De juiste uitvoer is dan
181440
0
3
def product_van_getallen(beginwaarde, eindwaarde):
if (beginwaarde > eindwaarde):
return 0
product = 1
huidige = beginwaarde
while huidige <= eindwaarde:
product = product * huidige
huidige = huidige + 1
return productOmdat het aantal herhalingen bekend is, kan beter een for-loop gebruikt worden.
def product_van_getallen(beginwaarde, eindwaarde):
if (beginwaarde > eindwaarde):
return 0
product = 1
for getal in range(beginwaarde, eindwaarde + 1):
product = product * getal
return productBij deze oplossing maken we gebruik van de formule:
P = e!/(b-1)!
import math
def product_van_getallen(beginwaarde, eindwaarde):
if (beginwaarde > eindwaarde):
return 0
return math.factorial(eindwaarde) / math.factorial(beginwaarde - 1)We kunnen de herhaling ook implememteren met behulp van een recusieve functie.
def product_van_getallen(beginwaarde, eindwaarde):
if beginwaarde > eindwaarde:
return 0
if beginwaarde == eindwaarde:
return beginwaarde
return beginwaarde * product_van_getallen(beginwaarde + 1, eindwaarde)