我有两个变量的“恢复系数”(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)。
为什么我的代码会产生错误的答案?
答案 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)