Later dit jaar ga je bij wiskunde nog uitvoerig leren over de driehoek van Pascal. Deze is opgebouwd volgens een vast patroon:
Onderstaande figuur maakt dit duidelijk: zo is het getal 1820 op de onderste rij bijvoorbeeld gelijk aan 455 + 1365.
Laten we een aantal zaken definiƫren:
Pascal(n, k)
.Het op de figuur aangeduide getal 1820 noteren we dus als Pascal(16, 4)
. Dit getal is de som van Pascal(15, 3)
en Pascal(15, 4)
. Ga voor jezelf na dat je dit goed begrijpt.
We kunnen deze eigenschap veralgemenen:
Pascal(n, k)
= Pascal(n-1, k-1)
+ Pascal(n-1, k)
(voor \(k \leq n\))Pascal(n, 0)
= Pascal(n, n)
= 1 (voor \(n \in \mathbb{N}\))Pascal(n, k)
die op een recursieve manier de waarde berekent van het getal op rij \(n\) en met rangnummer \(k\) in de driehoek van Pascal.som_Pascal(n)
die op een iteratieve manier de som berekent van alle getallen op rij \(n\) in de driehoek van Pascal. Uiteraard steun je in deze definitie op de functie Pascal(n, k)
.Als je vraag 1 niet gevonden hebt, kan je geen werkende code schrijven voor vraag 2. Dat neemt niet weg dat je in vraag 2 wel degelijk kan doen alsof Pascal(n, k)
correct gedefinieerd is. Je kan dus al je punten halen op vraag 2 terwijl je niets ingevuld hebt bij vraag 1.
Zoals steeds in dit soort opgaves mag er in de code die je door Dodona laat evalueren geen hoofdprogramma staan. Je code bestaat dus uit twee functiedefinities, en niet meer dan dat. Een eventueel hoofdprogramma dat je gebruikt hebt om je code te testen, moet je bij de evaluatie dus in commentaar zetten, of zelfs gewoon verwijderen.
Invoer:
>>> Pascal(4, 3)
Uitvoer:
4
Invoer:
>>> Pascal(16, 4)
Uitvoer:
1820
Invoer:
>>> som_Pascal(0)
Uitvoer:
1
Invoer:
>>> som_Pascal(4)
Uitvoer:
16