给出直径,以及段或弦的长度。我的问题的直径是12,和弦是10.你必须找到阴影部分的高度,然后打印该区域。原始公式为A=2/3ch + h^3/2c
。我的同学在该地区获得了18分,但当我使用我的代码时,我得到了41分。
这是我能找到的最接近的图片。但是,从ϴ
到s
。
from math import sqrt
diamStr=input("Enter the length of the diameter: ")
diameter=int(diamStr)
chordStr = input( " Enter the chord length: ")
chord = int(chordStr)
radius = (diameter/2)
s = sqrt (diameter**2+chord**2)
h = (s/2-radius)
i= (2/3*chord*h)
j=(h**3/2*chord)
area = (i+j)
print (area)
答案 0 :(得分:2)
不幸的是你的公式有问题但是如果用一些基本数学看问题,你可能会注意到ϴ
可以找到角度theta = math.acos((radius**2 + radius**2 - chord**2)/(2*radius**2))
,因为我们知道3个长度 (两个半径和弦长)
在Python中它将是:
theta
由于变量area = 1/2 * (theta - math.sin(theta)) * radius**2
已经是弧度,我们可以使用这个公式来计算细分的区域:
在python中将是import math
diamStr=input("Enter the length of the diameter: ")
diameter=int(diamStr)
chordStr = input( " Enter the chord length: ")
chord = int(chordStr)
radius = (diameter/2)
theta = math.acos((radius**2 + radius**2 - chord**2)/(2*radius**2))
area = 1/2 * (theta - math.sin(theta)) * radius**2
#print(round((area),2))
print(area)
因此,在合并所有这些之后,我们提出了一个优雅的解决方案:
18.880864248381847
如果您输入直径为12厘米,弦长为10,您将获得round()
,但您可以将其四舍五入到print(round((area),2))
函数所需的任意小数位数。
例如:18.88
打印{{1}}