All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars
 perplexus dot info

 Pair Ponder (Posted on 2014-08-07)
Three points are chosen randomly and independently on a circle.

Determine the probability that each of the three pairwise distances between the points is less than the radius of the circle.

 No Solution Yet Submitted by K Sengupta No Rating

Comments: ( Back to comment list | You must be logged in to post comments.)
 simulation verification Comment 2 of 2 |
The position on the circle is given in units of one circumference and is measured along the circumference. Therefore if the distance between two points is more than one half, its complement is taken. The distance along the arc must be under 1/6 circumference for the chord distance to be less than one radius.

DefDbl A-Z
Dim crlf\$, ptpos(3)
Function mform\$(x, t\$)
a\$ = Format\$(x, t\$)
If Len(a\$) < Len(t\$) Then a\$ = Space\$(Len(t\$) - Len(a\$)) & a\$
mform\$ = a\$
End Function

ChDir "C:\Program Files (x86)\DevStudio\VB\projects\flooble"
Text1.Text = ""
crlf\$ = Chr(13) + Chr(10)
Form1.Visible = True
DoEvents

For trial = 1 To 12000
For pt = 1 To 3
ptpos(pt) = Rnd(1)
Next pt
good = 1
For pt1 = 1 To 2
For pt2 = pt1 + 1 To 3
dist = Abs(ptpos(pt1) - ptpos(pt2))
If dist > 0.5 Then dist = 1 - dist
If dist > 1 / 6 Then good = 0: Exit For
Next
Next
If good Then goodct = goodct + 1
If trial Mod 120 = 0 Then
Text1.Text = Text1.Text & mform(goodct, "#######") & mform(trial, "########") & mform(goodct / trial, "##0.000000") & mform(trial / goodct, "###.0000") & crlf
DoEvents
Randomize Timer
End If
Next

Text1.Text = Text1.Text & crlf & "done"
End Sub

It finds, in one run:

939   12000  0.078250 12.7796

That is, the condition held in 939 out of 12,000 trials or 0.07825 of the time, or 1/12.7796.

Another run of the program:

1018   12000  0.084833 11.7878

and another:

998   12000  0.083167 12.0240

 Posted by Charlie on 2014-08-07 13:29:43

 Search: Search body:
Forums (0)