2

你会得到直径,以及段或弦的长度。我的问题的直径是 12,弦是 10。您必须找到阴影段的高度,然后打印该区域。原来的公式是A=2/3ch + h^3/2c。我的同学在该地区得到了 18,但当我使用我的代码时,我得到 41。

这是我能找到的最接近的图片表示。ϴ但是从到有一条虚线s从 wolfram.com 检索到的图像

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)
4

1 回答 1

2

不幸的是,您的公式有问题,但是如果用一些初等数学来查看问题,您可能会注意到ϴ可以使用余弦规则找到角度,因为我们知道 3 个长度(两个半径和弦长)

从 mathsisfun.com 获得

在 Python 中,它将是:

theta = math.acos((radius**2 + radius**2 - chord**2)/(2*radius**2))

由于变量theta已经是弧度,我们可以使用这个公式来计算线段的面积:

在此处输入图像描述

在python中是area = 1/2 * (theta - math.sin(theta)) * radius**2

因此,在合并所有这些之后,我们提出了一个优雅的解决方案:

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)

如果你输入直径为 12 厘米,弦长为 10,你会得到18.880864248381847,但你可以通过函数将它四舍五入到任何你想要的小数位round()

例如:print(round((area),2))印刷品18.88

于 2013-09-14T09:40:08.180 回答