 All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars  perplexus dot info  Capture the Flag (Posted on 2008-05-04) Let O designate the centre of an equilateral triangle. Points U-Z are chosen at random within the triangle. We have learnt that points U,V,W are each nearer to a (possibly different) vertex than to O; while X,Y are each closer to O than to any of the vertices.

Show that triangle XYZ is more likely than triangle UVW to contain the point O within its interior.

 See The Solution Submitted by FrankM Rating: 3.5000 (2 votes) Comments: ( Back to comment list | You must be logged in to post comments.) re: Extra Credit (Triangle XUV) | Comment 9 of 11 | (In reply to Extra Credit (Triangle XUV) by Steve Herman)

In this program, I've endeavored to simulate the situation of one point closer to the center, and the other two points closer to a vertex or vertices, but the tally at the end is 233,070 out of 1,000,000 tries. That's 10,848 more than would be expected from a 2/9 probability. It's more consistent with 7/30.

DEFDBL A-Z
x0 = .5: y0 = SQR(3) / 6

'SCREEN 12

FOR i = 1 TO 1000000
DO
x1 = RND(1): y1 = RND(1)
LOOP UNTIL y1 < SQR(3) / 3 AND y1 / x1 < SQR(3) AND y1 < SQR(3) * (1 - x1) AND y1 > SQR(3) * (1 / 3 - x1) AND y1 > SQR(3) * (x1 - 2 / 3)
' PSET (x1 * 400, (1 - y1) * 400), 12
DO
x2 = RND(1): y2 = RND(1)
LOOP UNTIL (y2 > SQR(3) / 3 OR y2 < SQR(3) * (1 / 3 - x2) OR y2 < SQR(3) * (x2 - 2 / 3)) AND y2 / x2 < SQR(3) AND y2 < SQR(3) * (1 - x2)
' PSET (x2 * 400, (1 - y2) * 400), 14
DO
x3 = RND(1): y3 = RND(1)
LOOP UNTIL (y3 > SQR(3) / 3 OR y3 < SQR(3) * (1 / 3 - x3) OR y3 < SQR(3) * (x3 - 2 / 3)) AND y3 / x3 < SQR(3) AND y3 < SQR(3) * (1 - x3)
' PSET (x3 * 400, (1 - y3) * 400), 9

m = (y2 - y1) / (x2 - x1)
a = y1 - m * x1
test1 = y3 - (m * x3 + a)
test2 = y0 - (m * x0 + a)

m = (y3 - y1) / (x3 - x1)
a = y1 - m * x1
test3 = y2 - (m * x2 + a)
test4 = y0 - (m * x0 + a)

m = (y3 - y2) / (x3 - x2)
a = y2 - m * x2
test5 = y1 - (m * x1 + a)
test6 = y0 - (m * x0 + a)

IF test1 * test2 > 0 AND test3 * test4 > 0 AND test5 * test6 > 0 THEN
hit = hit + 1
END IF
ct = ct + 1
PRINT hit, ct, hit / ct
NEXT

 Posted by Charlie on 2008-05-08 10:29:18 Please log in:

 Search: Search body:
Forums (0)