这个怎么算啊?怎么把仨个三角形面积加减,能用s1.s2

img


我不知道这个三角形怎么来表示,好像不能用s1s2之类的,就是def定义函数hailun,然后怎么把p定义出来和那个面积±联系起来啊?

p和面积联系起来可以用表达式来联系,根据题目给出的信息,可以如下思考:
首先定义求三角形面积的函数,a,b,c 代表三角形的三条边的长度,利用它们可以求出p,然后利用p可以求出面积s,把这些组合在一起就可以定义一个求三角形的面积的函数;

然后调用三次函数来求三个三角形的面积;

最后利用这三个面积可以求出阴影部分的面积。

代码如下:
参考链接:
python开平方怎么写-常见问题-PHP中文网

import math

def area(a,b,c):
    
    p  = (a+b+c)/2
    #https://www.php.cn/faq/419140.html
    s = math.sqrt(p*(p-a)*(p-b)*(p-c))
    
    return s


s1=area(9.8,9.3,6.4) #求大三角形的面积
s2=area(2.9,4.1,4.7) #求中间空白三角形的面积
s3=area(2.0,1.4,2.3) #求空白三角形中的阴影小三角形的面积
shadowArea = s1-s2+s3  #计算最后阴影部分的面积
print(shadowArea)

    

img

如果不借助math等外部库,也可以达到同样目的和效果:

def solution(a,b,c):
    S = []
    for i in range(3):
        p = (a[i] + b[i] + c[i]) / 2
        S.append((p * (p - a[i]) * (p - b[i]) * (p - c[i])) ** (1/2))
    result = S[0] - S[1] + S[2]
    return result
print(solution([9.8,2.9,2.0],[9.3,4.1,1.4],[6.4,4.7,2.3]))

其中,solution函数是主函数。传参时传入3个3元素列表即可,它们分别代表三角形三边(a,b,c)。