给定四边形a, b, c, d的四条边,根据给定的边数求四边形的最大面积。
例子:
输入:1 2 1 2
输出:2.00
构造一个矩形以获得最大面积是最佳的。

根据Bretschneider 公式,一般四边形的面积为,K=

这里,a、b、c、d 是四边形的边长,s 是四边形的半周长,角是两个对角。
因此,只有当对角和等于 π(180) 时,该公式才最大化。然后,我们可以使用 Bretschneider 公式的简化形式来计算(最大)面积 K。
![]()
这个公式被称为Brahmagupta 公式。
下面是给定方法的实现:
# Python3 program to find maximum
# area of a quadrilateral
import math
def maxArea (a , b , c , d ):
# Calculating the semi-perimeter
# of the given quadrilateral
semiperimeter = (a + b + c + d) / 2
# Applying Brahmagupta's formula to
# get maximum area of quadrilateral
return math.sqrt((semiperimeter - a) *
(semiperimeter - b) *
(semiperimeter - c) *
(semiperimeter - d))
# Driver code
a = 1
b = 2
c = 1
d = 2
print("%.2f"%maxArea(a, b, c, d))
# This code is contributed by "Sharad_Bhardwaj".
输出:
2.00
时间复杂度: O(logn)
辅助空间: O(1)
如果有人有在空间和时间方面更高效的更好解决方案,请提出建议。
如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。
5390

被折叠的 条评论
为什么被折叠?



