pi

De berekening van \(\pi\) in de opgave Benadering voor pi aangepast1 geeft geen enkele garantie dat de 10 decimalen die je uitschrijft ook correct zijn. In deze oefening proberen we dit probleem op te lossen.

Problemen met reële getallen

Op One million digits of pi2 kan je een heel goede benadering vinden voor \(\pi\). Download het programma pi.py3. In de code werd deze benadering in een string geplakt (beperkt tot 65 digits). Voer dit programma uit en merk op:

Opdracht

Schrijf een programma dat een positief geheel getal \(k\) inleest. Dit getal bepaalt hoeveel cijfers na de komma correct moeten zijn. Pas de berekening aan zodat de waarde van \(\pi\) correct is tot \(k\) cijfers na de komma. Uiteraard kan je dit enkel zinvol testen met \(k<15\). Het programma schrijft de waarde van \(\pi\) dan ook uit met \(k\) decimalen.

Je gebruikt de aangepaste formule:

\[\pi = 3 + \frac{4}{2*3*4} - \frac{4}{4*5*6} + \frac{4}{6*7*8} - \frac{4}{8*9*10} + ...\]

Je moet het hoofdprogramma toevoegen in de gegeven procedure main().

Tips

Reeksom

Op de grafiek kan je zien dat het gemiddelde van twee opeenvolgende partiële sommen (bijvoorbeeld \(\frac{S_3+S_4}{2}\)) een goede benadering is voor \(\pi\).

Invoer

Het gewenste aantal decimalen (\(k\)).

Uitvoer

De berekende waarde voor \(\pi\) met exact \(k\) decimalen.

Voorbeeld1

Het aantal gewenste decimalen is 6

>>> main()
3.141593

Voorbeeld2

Het aantal gewenste decimalen is 14

>>> main()
3.1415926535898

Merk op dat het veertiende decimaal hier 0 is. Python toont voor getallen geen nullen achteraan, dus zie je maar 13 decimalen.

Als enkel deze testset faalt, dan moet je de tips nog eens goed lezen!