👀 Voorbeeld - \(\pi\) schatten met willekeurige punten
Stel dat we een cirkel met straal 1 tekenen in een vierkant met zijde 2.
De oppervlakte van:
- het vierkant is:
2 × 2 = 4
- de cirkel is:
$$ \pi $$ × 1² = πAls we heel veel willekeurige punten kiezen in het vierkant, dan zal:
aantal punten in de cirkel -------------------------------- totaal aantal puntenongeveer gelijk zijn aan:
oppervlakte cirkel ------------------- oppervlakte vierkantDus:
aantal punten in de cirkel -------------------------------- ≈ π / 4 totaal aantal puntenHieruit volgt:
π ≈ 4 × (aantal punten in de cirkel / totaal aantal punten)We kunnen \(\pi\) dus benaderen door veel punten te testen.
In de vorige oefening schreef je de functie
in_cirkel().def in_cirkel(x, y): return x**2 + y**2 <= 1
💻 Programmeeroefening - \(\pi\) schatten
Schrijf de functie
schat_pi(punten).
puntenis een lijst van tuples(x, y)- Elk tuple stelt een punt in het vlak voor
- Alle punten liggen tussen
-1en1De functie moet:
- bepalen hoeveel punten binnen de cirkel liggen
- hiermee een benadering van π berekenen
- die benadering retourneren
Gebruik de formule:
π ≈ 4 × (aantal punten in de cirkel / totaal aantal punten)
🔋 Bonusoefening - \(\pi\) effectief schatten
Deze oefening maak je in de sandbox, je hoeft ze niet in te dienen.
- Gebruik de random bibliotheek om een grote lijst van willekeurige coördinaten op te stellen. Alle x- en y-waarden moeten tussen -1 en 1 liggen. (Dit is dus een lijst van tupels met in elke tupel twee elementen.)
- Tip: met een
for-lus kan je heel snel een heel grote lijst aanmaken.- Gebruik de lijst van coördinaten als parameter in de functie die je net geschreven hebt.
- Print het resultaat. Benader je \(\pi\) ?