我需要一些帮助来构建最大化面积的 n 边多边形。
我为 4 边多边形编写了以下代码,并将边长作为用户输入。
我无法将其转换为“任何 n 边多边形”的通用代码(n 的值和所有长度作为用户输入给出)
import numpy as np
import math
def area_t1(a, b, c):
s = (a + b + c) / 2
return math.sqrt(s * (s - a) * (s - b) * (s - c))
side_lengths = []
for i in range(4):
side = int(input("Enter the individual side length"))
side_lengths.append(side)
z = side_lengths[0] + side_lengths[1]
if side_lengths[0] > side_lengths[1]:
y = side_lengths[0] - side_lengths[1]
else:
y = side_lengths[1] - side_lengths[0]
areas = []
for i in np.arange(y + 0.1, z, 0.0001):
a1 = area_t1(side_lengths[0], i, side_lengths[1])
a2 = area_t1(side_lengths[2], i, side_lengths[3])
area = a1 + a2
areas.append(area)
print(max(areas))