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

Home > Numbers
Area / Perimeter Ratio (Posted on 2024-01-04) Difficulty: 3 of 5
The triangle 5,12,13 has an area A=30 and a perimeter P=30, so A/P is 1.
The triangle 9,75,78 has an area A=324 and a perimeter P=162, so A/P is 2.

Find the smallest and largest integer-sided triangles where A/P is 10.

See The Solution Submitted by K Sengupta    
Rating: 5.0000 (1 votes)

Comments: ( Back to comment list | You must be logged in to post comments.)
Some Thoughts ? solution, larger found | Comment 3 of 5 |
Smallest: [65, 70, 75] P = 210, A = 2100
Largest:  [73, 14606, 14667] P = 29,346 and A = 293,460  (at least that I found)

This is a very thin triangle with the smallest angle being about 9.42 minutes of arc.

The smallest of the group will be the closest to equilateral and as they get larger, they get thinner.
I tried to find a theoretical maximum area, thinnest possible triangle that would have an A/P ratio of 10, but I did not come to a solid finding.  But I did notice some things about the side lengths that made it possible to put more strict constraints on the search parameters.
Call the sides x,y,z where x <= y <= z.
As the triangles get larger and thinner, y gets larger and also x+y-z gets smaller. 
The ratio (x+y-z)/y gets very small, e.g. 0.01

----------------------------
Version one:
big = 10000
for x in range(1,big):
    for y in range(x,big):
        lo = min(1, y-x)
        hi = x+y
        for z in range(lo,hi):
            p = hi + z
            a = areaHeron(x,y,z)
            if a/p == 10:
                tri = sorted([x,y,z])
                if [int(a),tri] not in solutions:
                    solutions.append([int(a),tri])
print(sorted(solutions))
-----
Version two squeezing down on the parameters for x,y,z
solutions = []
big = 1000000
for x in range(40,90):
    print(2*x - 80, '%') # to follow progress
    for y in range(10000,big):
        lo = x + int(999*y/1000)
        hi = x+y
        for z in range(lo,hi):
            p = hi + z
            a = areaHeron(x,y,z)
            if a/p == 10:
                tri = sorted([x,y,z])
                if [int(a),tri] not in solutions:
                    solutions.append([int(a),tri])
                    print([int(a),tri])

print(sorted(solutions))
print('number of solutions', len(solutions))
-----  -----

Output of version one with "big" variable 10000
   AREA    SIDES
  [2100, [65, 70, 75]],
  [2160, [60, 78, 78]],
  [2220, [61, 74, 87]],
  [2280, [57, 82, 89]],
  [2340, [65, 72, 97]],
  [2400, [60, 80, 100]],
  [2520, [56, 90, 106]],
  [2640, [52, 102, 110]],
  [2640, [66, 82, 116]],
  [2700, [75, 75, 120]],
  [2940, [49, 122, 123]],
  [3000, [50, 120, 130]],
  [3060, [53, 117, 136]],
  [3240, [72, 102, 150]],
  [3300, [55, 125, 150]],
  [3360, [48, 140, 148]],
  [3360, [68, 112, 156]],
  [3600, [90, 100, 170]],
  [3720, [62, 136, 174]],
  [3780, [54, 149, 175]],
  [3900, [75, 130, 185]],
  [4200, [50, 175, 195]],
  [4200, [70, 150, 200]],
  [4320, [108, 116, 208]],
  [4500, [45, 200, 205]],
  [4620, [56, 187, 219]],
  [4620, [66, 175, 221]],
  [4680, [74, 169, 225]],
  [4740, [87, 158, 229]],
  [4980, [83, 174, 241]],
  [5280, [44, 240, 244]],
  [5460, [78, 203, 265]],
  [5520, [46, 246, 260]],
  [5640, [47, 250, 267]],
  [6000, [60, 250, 290]],
  [6180, [109, 206, 303]],
  [6240, [52, 272, 300]],
  [6300, [65, 259, 306]],
  [6360, [106, 218, 312]],
  [6600, [165, 170, 325]],
  [6660, [153, 185, 328]],
  [6960, [58, 300, 338]],
  [7020, [51, 312, 339]],
  [7020, [135, 221, 346]],
  [7500, [125, 255, 370]],
  [7740, [43, 362, 369]],
  [7980, [119, 285, 394]],
  [8100, [45, 375, 390]],
  [8160, [68, 348, 400]],
  [8160, [204, 208, 404]],
  [8280, [184, 234, 410]],
  [8580, [169, 264, 425]],
  [9120, [156, 304, 452]],
  [9240, [42, 440, 442]],
  [9240, [110, 357, 457]],
  [9240, [154, 312, 458]],
  [9900, [55, 450, 485]],
  [10080, [144, 364, 500]],
  [10320, [86, 436, 510]],
  [10500, [105, 425, 520]],
  [10620, [59, 481, 522]],
  [11220, [51, 521, 550]],
  [11220, [136, 429, 557]],
  [11340, [42, 543, 549]],
  [11640, [102, 485, 577]],
  [11880, [54, 550, 584]],
  [12120, [101, 510, 601]],
  [12180, [203, 409, 606]],
  [12600, [130, 504, 626]],
  [12900, [129, 520, 641]],
  [12960, [48, 612, 636]],
  [13860, [63, 638, 685]],
  [14280, [42, 689, 697]],
  [14580, [81, 654, 723]],
  [14880, [124, 624, 740]],
  [16080, [402, 404, 802]],
  [16740, [62, 783, 829]],
  [17100, [95, 765, 850]],
  [17220, [41, 840, 841]],
  [17400, [120, 754, 866]],
  [18060, [43, 875, 888]],
  [18060, [303, 602, 901]],
  [18120, [302, 606, 904]],
  [18480, [44, 894, 910]],
  [19560, [163, 818, 975]],
  [19740, [47, 952, 975]],
  [19740, [282, 707, 985]],
  [20340, [117, 904, 1013]],
  [20460, [93, 935, 1018]],
  [21060, [78, 981, 1047]],
  [32040, [801, 802, 1601]]
-----  -----

Output of version two testing x from 40 to 89; y 10000 to 1000000; "lo" factor 999/1000
(this misses many smaller triangles, but is looking for the largest 

 [28140, [67, 1347, 1400]],
 [30600, [90, 1445, 1525]],
 [31200, [60, 1508, 1552]],
 [31920, [76, 1526, 1590]],
 [37380, [89, 1785, 1864]],
 [41820, [51, 2050, 2081]],
 [46920, [46, 2312, 2334]],
 [60180, [59, 2958, 3001]],
 [68040, [42, 3375, 3387]],
 [71340, [87, 3485, 3562]],
 [75480, [74, 3706, 3768]],
 [87480, [54, 4329, 4365]],
 [139320, [86, 6885, 6961]],
 [293460, [73, 14606, 14667]]


  Posted by Larry on 2024-01-04 10:05:16
Please log in:
Login:
Password:
Remember me:
Sign up! | Forgot password


Search:
Search body:
Forums (0)
Newest Problems
Random Problem
FAQ | About This Site
Site Statistics
New Comments (3)
Unsolved Problems
Top Rated Problems
This month's top
Most Commented On

Chatterbox:
Copyright © 2002 - 2024 by Animus Pactum Consulting. All rights reserved. Privacy Information