# your code goes here
import numpy as np
def simulate_trains(speed1, speed2, departure_interval, time_step=0.1):
"""
Симулює рух поїздів та шукає час їх зустрічі
Parameters:
speed1 - швидкість електропоїздів (км/год)
speed2 - швидкість зустрічного поїзда (км/год)
departure_interval - інтервал між відправленням електропоїздів (хв)
time_step - крок симуляції (хв)
"""
# Конвертуємо швидкості в км/хв
speed1 = speed1 / 60 # швидкість електропоїздів
speed2 = speed2 / 60 # швидкість зустрічного поїзда
# Початкові позиції поїздів (км)
train1_pos = 0 # перший електропоїзд
train2_pos = 0 # другий електропоїзд (ще не вийшов)
opposite_pos = 100 # зустрічний поїзд (починаємо з деякої відстані)
# Час відправлення другого поїзда
train2_departure = departure_interval
# Змінні для зберігання часу зустрічей
meeting1_time = None
meeting2_time = None
# Симуляція руху
time = 0
while time < 120: # симулюємо до 2 годин
# Оновлюємо позиції
train1_pos = speed1 * time
opposite_pos = 100 - speed2 * time
# Перевіряємо першу зустріч
if meeting1_time is None and abs(train1_pos - opposite_pos) < 0.1:
meeting1_time = time
# Оновлюємо позицію другого поїзда після його відправлення
if time >= train2_departure:
train2_pos = speed1 * (time - train2_departure)
# Перевіряємо другу зустріч
if meeting1_time is not None and meeting2_time is None and abs(train2_pos - opposite_pos) < 0.1:
meeting2_time = time
break
time += time_step
return meeting1_time, meeting2_time
# Перевіряємо різні швидкості зустрічного поїзда
test_speeds = np.arange(50, 140, 1)
for speed2 in test_speeds:
meeting1, meeting2 = simulate_trains(
speed1=50, # швидкість електропоїздів
speed2=speed2, # тестована швидкість зустрічного
departure_interval=12 # інтервал між електропоїздами
)
if meeting1 is not None and meeting2 is not None:
time_diff = meeting2 - meeting1
if abs(time_diff - 5) < 0.1: # перевіряємо чи різниця близька до 5 хвилин
print(f"При швидкості зустрічного поїзда {speed2} км/год:")
print(f"Час першої зустрічі: {meeting1:.1f} хв")
print(f"Час другої зустрічі: {meeting2:.1f} хв")
print(f"Різниця часу: {time_diff:.1f} хв")
break