数学相遇问题

 题干: 甲、乙两人在一条长 120 米的直路上来回跑, 甲的速度是 5 米/秒, 乙的速度是 3 米/秒. 若他们同时从同一端出发跑了 15 分钟, 则他们在这段时间内共迎面相遇多少次,总共相遇多少次?

代码模拟:

# 定义参数
track_length = 120  # 跑道长度,单位:米
speed_a = 5  # 甲的速度,单位:米/秒
speed_b = 3  # 乙的速度,单位:米/秒
time_seconds = 15 * 60  # 时间转换为秒

# 初始化变量
position_a = -60  # 甲的初始位置
position_b = -60  # 乙的初始位置(从跑道的另一端开始)
meetings = 0  # 相遇次数
flag_a = 1
flag_b = 1
meetings_count = 0

# 模拟两人跑步过程
for _ in range(time_seconds):
    
    #甲向前跑一步,碰到端点转身
    if position_a >= 60:
        flag_a = -1
    
    if position_a <= -60:
        flag_a = 1
    
    if flag_a == 1:
        position_a += speed_a
    else:
        position_a -= speed_a

    #乙向前跑一步,碰到端点转身
    if position_b >= 60:
        flag_b = -1
    
    if position_b <= -60:
        flag_b = 1

    if flag_b == 1:
        position_b += speed_b
    else:
        position_b -= speed_b

    # 检查是否迎面相遇
    # 相遇条件是甲和乙在同一位置,并且甲从后面追上乙
    if position_a == position_b and flag_a != flag_b:
        meetings += 1

    #检测是否相遇
    if position_a == position_b:
        meetings_count += 1

    print(_,position_a,position_b)

# 打印结果
print(f"他们在这段时间内共迎面相遇 {meetings} 次。")
print(f"他们在这段时间内共相遇 {meetings_count} 次。")

数学解释:

【答案】

总共相遇:(5+3)× 15 × 60 = 7200(米)

        7200 ÷ 120 × 2= 30(次)

迎面相遇: 3 × 15 × 60 ÷ 120 = 22.5(次)

     5 × 15 × 60 ÷ 120 = 37.5(次)

所以总共迎面相遇23

【点睛】要注意到迎面相遇和相遇之间的区别,同时要意识到在行程问题中,两人从同一点出发,每一次相遇意味着两人跑过的总距离为两点距离的两倍。迎面相遇意味着相遇时两人的方向是相向而行

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值