如何将变量减少5%?

2024-04-28 08:44:31 发布

您现在位置:Python中文网/ 问答频道 /正文

当一个人跑上斜坡时,他会一直冲到耗尽能量,然后停下来休息,函数会返回他冲上斜坡的次数,直到他到达山顶。每次他再冲一次就损失5%。然而,当我运行这个程序时,它花费了太长的时间,并且没有返回任何东西。它应该返回19。在

    def num_rushes(slope_height, rush_height_gain, back_sliding):
        current_height = 0
        rushes = 0
        while current_height < slope_height:
            current_height += rush_height_gain
            if current_height < slope_height:
                current_height -= back_sliding
            rushes += 1
            rush_height_gain = rush_height_gain * 0.95  
        return rushes

    ans = num_rushes(100, 15, 7)
    print(ans)

Tags: 函数backcurrent次数numslope能量gain
1条回答
网友
1楼 · 发布于 2024-04-28 08:44:31

所发生的是你的高度增加是恒定的(15),在循环中,只要你不在顶端,你就会向后滑动一些常数(7)。所以你会认为你只是慢慢地爬到斜坡的顶端,因为它的收益大于向后的滑动

但是,循环的每次迭代都会将“高度增益”的值降低到其值的95%(即,每次迭代的增量越来越小)。这很好,你会继续攀爬,但是一旦高度增益值小于向后滑动值,你就会一直滑入当前高度的负值,循环将永远不会退出

相关问题 更多 >