Python程序找出球在圆管中碰撞多少次
假设在一个圆管中有 n 个球。管子长 100 米,最初,管子中的每个球都距离我们称为起点的点 i 米。现在球开始在管内以不同方向以圆形顺序行进。球在管内以每秒 0.1 米的速度行进。当两个球在一个点相遇时,就会发生碰撞,球会改变它们的行进方向。如果这个过程持续很长时间,比如说 10^9 + 6 秒;我们必须找出球发生碰撞的次数。球到起点的初始距离作为输入给出。
因此,如果输入类似于 input_array = [0, 10],那么输出将是 400000
有两个球,它们与起跑线的初始距离作为输入提供给我们。如果他们的方向相同,他们将永远不会发生碰撞。但是,如果它们的方向不同,它们有时会发生碰撞。一个球将与另一个球碰撞 400000 次。
示例
让我们看看以下实现以获得更好的理解 -
def solve(input_array):input_array.sort()
size = len(input_array)
lap_count = (10**5)*2
output = 2*lap_count*(size//2)*(size - size//2)
stop = 0
for i in range(size - 1):
if stop != 1:
if input_array[i] + 1 == input_array[i+1]:
output+=2
stop = 1
else:
stop = 0
else:
stop = 0
return output
print(solve([0, 10]))
输入
[0, 10]输出结果
400000
以上是 Python程序找出球在圆管中碰撞多少次 的全部内容, 来源链接: utcz.com/z/341398.html