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

 A Common Vertex (Posted on 2004-07-12)
Three regular polygons, all with unit sides, share a common vertex and are all coplanar. Each polygon has a different number of sides, and each polygon shares a side with the other two; there are no gaps or overlaps. Find the number of sides for each polygon. There are multiple answers.

 See The Solution Submitted by Brian Smith Rating: 3.0000 (1 votes)

Comments: ( Back to comment list | You must be logged in to post comments.)
 re: solution | Comment 3 of 19 |
(In reply to solution by Thalamus)

The nine listed non-degenerate cases do seem to be exhaustive, with computer confirmation.  The program did not limit itself to only 3 polygons meeting at the vertex (even though the problem specified only 3), but within the output, only the previously found nine cases had just 3 polygons meeting.

The complete list when not limited to threesomes is:

3 hexagons;
2 pentagons; 1 10-gon;
1 square; 2 8-gons;
1 square;  1 hexagon; 1 12-gon;
1 square;  1 pentagon; 1 20-gon;
4 squares;
1 triangle; 2 12-gons;
1 triangle; 1 8-gon; 1 24-gon;
1 triangle; 1 9-gon; 1 18-gon;
1 triangle; 1 10-gon; 1 15-gon;
1 triangle;  2 squares;  1 hexagon;
2 triangles;  2 hexagons;
2 triangles;  1 square; 1 12-gon;
3 triangles;  2 squares;
4 triangles;  1 hexagon;
6 triangles;

3             60
4             90
5             108
6             120
7             128.5714285714286
8             135
9             140
10            144
11            147.2727272727273
12            150
13            152.3076923076923
14            154.2857142857143
15            156
16            157.5
17            158.8235294117647
18            160
19            161.0526315789474
20            162
21            162.8571428571429
22            163.6363636363636
23            164.3478260869565
24            165

I note that a 7-gon and a 22-gon would produce together an exact number of degrees. It happens that what's left can't form an angle of a regular polygon, but it would take some consideration.

The program considered all possible combinations of zero to as many would fit in 360 degrees of triangles through hexagons.  Then upon each, with whatever is left of 360 degrees, attempt to place one or two (possibly equal) angles larger than 120 degrees.  As mentioned, the program left to the operator the task of selecting out those with three angles meeting at the vertex. The program is

DEFDBL A-Z
FOR i = 3 TO 24
t = i * 180 - 360
a = t / i
PRINT i, a
NEXT

FOR tr = 0 TO 6
FOR sq = 0 TO (360 - 60 * tr) / 90
TrSq = 60 * tr + 90 * sq
FOR pent = 0 TO (360 - TrSq) / 108
TrSqPe = TrSq + 108 * pent
FOR hx = 0 TO (360 - TrSqPe) / 120
degUsed = TrSqPe + 120 * hx
reported = 0
IF degUsed = 360 THEN
GOSUB reportToHex
PRINT
ELSE
IF degUsed > 0 THEN
remain = 360 - degUsed
IF remain <> 180 THEN
i = 360 / (180 - remain)
IF i = INT(i) AND i > 6 THEN
GOSUB reportToHex
PRINT "1"; STR\$(i); "-gon; "
END IF
END IF
i = 360 / (180 - remain / 2)
IF i = INT(i) AND i > 6 THEN
GOSUB reportToHex
PRINT "2"; STR\$(i); "-gons; "
END IF
FOR j = 7 TO i - 1
t = j * 180 - 360
a1 = t / j
a2 = remain - a1
IF a2 < 180 THEN
IF ABS(a2 - INT(a2 + .5)) < 1E-12 THEN
GOSUB reportToHex
PRINT "1"; STR\$(j); "-gon; ";
PRINT "1"; STR\$(360 / (180 - a2)); "-gon; "
END IF
END IF
NEXT
END IF
END IF
NEXT hx
NEXT pent
NEXT sq
NEXT tr

END

reportToHex:
IF tr = 1 THEN PRINT " 1 triangle; "; :  ELSE IF tr > 0 THEN PRINT tr; "triangles; ";
IF sq = 1 THEN PRINT " 1 square; "; :  ELSE IF sq > 0 THEN PRINT sq; "squares; ";
IF pent = 1 THEN PRINT " 1 pentagon; "; :  ELSE IF pent > 0 THEN PRINT pent; "pentagons; ";
IF hx = 1 THEN PRINT " 1 hexagon; "; :  ELSE IF hx > 0 THEN PRINT hx; "hexagons; ";
RETURN

 Posted by Charlie on 2004-07-12 13:16:27

 Search: Search body:
Forums (0)