恢复系数

时间:2018-05-10 15:58:59

标签: python python-3.x

我有两个变量的“恢复系数”(cor)和“以米为单位的初始高度”(h)。我试图找到“米行走”(th),它们是cor * h + cor * h + ....相同的乘法,直到米的数量小于0.10米。我所做的是:

cor = float(input("Enter coefficient of restitution : "))
h = float(input("Enter initial height in meters : "))
nob = 0
th = h
while (h >= 0.10):
    nob += 1
    h *= cor    
    th += h   
print("Meters traveled : {0:.2f}".format(th))
print("Number of bounces : ", nob)

对于cor = 0.7和h = 8,我发现结果26.49米,而我的书说44.82米。但是,我确实有正确的反弹次数(13)。

为什么我的代码会产生错误的答案?

1 个答案:

答案 0 :(得分:3)

当您指定th时,似乎没有考虑到球向下和向上移动。球下降8米,然后球意味着球将上升5.6米并且下降5.6米。改变你的th + = h * 2,这更接近你的书的答案。

cor = float(input("Enter coefficient of restitution : "))
h = float(input("Enter initial height in meters : "))
nob = 0
th = h
while (h >= 0.10):
    nob += 1
    h *= cor    
    th += h*2   
print("Meters traveled : {0:.2f}".format(th))
print("Number of bounces : ", nob)