Drop links or images here to add them to the editor.

👀 Voorbeeld - \(\pi\) schatten met willekeurige punten

Stel dat we een cirkel met straal 1 tekenen in een vierkant met zijde 2.

Monte Carlo pi

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 punten

ongeveer gelijk zijn aan:

oppervlakte cirkel
-------------------
oppervlakte vierkant

Dus:

aantal punten in de cirkel
-------------------------------- ≈ π / 4
totaal aantal punten

Hieruit 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).

  • punten is een lijst van tuples (x, y)
  • Elk tuple stelt een punt in het vlak voor
  • Alle punten liggen tussen -1 en 1

De 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\) ?