3 svar
228 visningar
Sanna123 31
Postad: 13 okt 2020 11:27

Buffons nål

Hej! Jag håller på med gymnasiearbetet och ska uppskatta π med hjälp av slumptal, som Buffon gjorde 1777. Jag har valt att skriva ett program som kastar all "nålar" åt mig. Min "nål" är 0.5 längdenheter och avståndet mellan linjerna är 1 längdenhet. Chansen (P) att en nål ska korsa en linje blir då  P=2ldπ P=1π

(l är längden på min nål och d är avståndet mellan linjerna). 

Nu till delen där jag behöver hjälp...

Jag har i mitt program valt att för enkelhetens skull slumpa fram nålens mittpunkts koordinat eftersom det är därifrån jag räknar, med hjälp av vinkel, om nålen har korsat en linje eller ej.

Hur stor ska hela ytan som nålen kan hamna på vara? alltså hur långt över/under mina två linjer ska jag tillåta mittpunkten på nålen att hamna?

När jag har satt intervallet 0.5  y  2.5 så får jag en bra uppskattning, men jag vet inte varför... 

Så hur stort ska intervallet y vara för att chansen att nålen ska korsa en linje ska bli 1/pi 

Yngve 40596 – Livehjälpare
Postad: 13 okt 2020 15:42 Redigerad: 13 okt 2020 15:46

Det borde räcka med 0,5y<1,50,5\leq y<1,5, dvs att intervallet för placeringen av nålens mittpunkt är lika stort som avståndet mellan linjerna. Om linjen ligger vid y=1y=1 så räcker det med en linje.

Beroende på hur du modellerar det hela i programkod så kan det bli enklare/snyggare att låta linen vara y=0y=0 och nålarnas mittpunkter hamna någonstans i intervallet -0,5y<0,5-0,5\leq y<0,5

Kanske detta kan ge någon inspiration?

Sanna123 31
Postad: 13 okt 2020 17:01

Ja den tråden har definitivt varit bra :) När jag ändra intervallet så kommer jag olika nära pi, vilket då borde innebära att det finns ett intervall som är "rätt", eller? Chansen ska, med de mått på nål och avstånd mellan linjer jag valt, vara 1/pi, hur beräknar jag om de intervall jag har ger den chansen?

Yngve 40596 – Livehjälpare
Postad: 13 okt 2020 21:51

Det borde inte spela någon roll, bara intervallet är tillräckligt stort så att alla möjliga utfall är möjliga.

Om utfallet beror på intervallstorleken så beror det nog snarare på hur du har kodat det hela. 

Svara
Close