Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 22.11.2022
Сообщений: 1

Задача На переезде

22.11.2022, 06:26. Показов 1043. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На переезде
По оси OX движется поезд со скоростью v0. По оси OY движется автомобиль со скоростью v1. В начальный момент голова поезда находится в точке b, его хвост – в точке e. Автомобиль начинает движение в точке s, и должен попасть в точку f. В точке пересечения координатных осей 0 находится переезд со шлагбаумом, который закрывается ровно в тот момент, когда голова поезда попадает в точку 0 (в этот момент автомобиль уже не может проехать через переезд) и открывается ровно в тот момент, когда хвост поезда покидает точку 0 (в этот момент автомобиль уже может проехать через переезд). В остальное время переезд открыт. Требуется определить время, за которое автомобиль попадет из точки s в точку f, если оба транспортных средства начинают движение одновременно.


Автомобиль считаем материальной точкой, поезд – отрезком постоянной длины, движущимся в том направлении, где расположена голова. В начальный момент времени точка автомобиля не принадлежит отрезку поезда. b и e – абсциссы, s и f - ординаты. f не равно 0.

Input format
В первой строке содержится три целых числа b, e, v0. Во второй строке содержится три целых числа s, f, v1. Числа в строке записаны через пробел, и не превышают 1000 по абсолютному значению. b не равно e. v0 и v1 больше 0.

Output format
Требуется вывести время, требующееся автомобилю, чтобы попасть в точку f с точностью не меньше трех знаков после десятичной точки.

Examples
Input
-2 -5 1
-3 4 1
Out
9.000
Notes
На рисунке представлен только один из множества возможных примеров.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.11.2022, 06:26
Ответы с готовыми решениями:

Редирект при переезде
Задача такая, нужно сделать правило в htaccess, чтобы при входе в сайт.py/фopум/... редирект шел на фopум.сайт.py/... Подскажите как...

Застрял на переезде сайта на новый домен (редиррект)
Доброго времени суток, уважаемые. Появилась необходимость перетащить сайт на wordpress на другой домен с попутной сменой url ...

При переезде появилась синтаксическая ошибка - как исправить?
SyntaxError: invalid syntax указывает на ^ на букве К проверил локально, там ошибку не выдает. на прошлом сервере тоже не...

17
 Аватар для s_t_r_a_j
526 / 179 / 58
Регистрация: 12.02.2023
Сообщений: 641
28.06.2023, 00:21
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
f, s, v1 = list(map(int,input().split()))
 
if f < 0 or s > 0:
    # при таких условиях поезд вообще не учитываем
    print(format(abs(s - f) / v1, '.3f'))
else:
    e, b, v2 = list(map(int,input().split()))
 
    time_car_0, time_car_final = (abs(s)) / v1, abs(s) + abs(f) / v1
    time_train_begin_0, time_train_end_0 = abs(b) / v2, abs(e) / v2
 
    if time_train_end_0 < time_car_0 or time_car_0 < time_train_begin_0:
        # проезжаем переезд свободно, не останавливаясь
        rez = time_car_final
    else:
        # переезд закрыт, ожидаем пока поезд не проедет
        rez = time_car_final + (abs(e) - time_car_0 * v2) * v2
    print(format(rez, '.3f'))
Добавлено через 1 минуту
Цитата Сообщение от Монгол 3000Е Посмотреть сообщение
Examples
Input
-2 -5 1
-3 4 1
Out
9.000
Notes
На рисунке представлен только один из множества возможных примеров
неверно посчитано, при указанных данных
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
28.06.2023, 06:25
Лучший ответ Сообщение было отмечено u235 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
b, e, v0 = map(int, input('b, e, v0 ->').split())
s, f, v1 = map(int, input('s, f, v1 ->').split())
t = (f-s)/v1
if s <= 0 and f >= 0 and b <= 0:
    t1 = -b/v0
    t2 = -e/v0
    t0 = -s/v1
    if t1 <= t0 < t2:
        t += t2 - t0
print(f'{t:.3f}')
1
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
28.06.2023, 06:38
Цитата Сообщение от s_t_r_a_j Посмотреть сообщение
неверно посчитано, при указанных данных
все верно.
Python
1
2
3
4
5
6
7
b, e, v0 = map(int, input().split())
s, f, v1 = map(int, input().split())
t1 = -b/v0  # время начала проезда поезда
t2 = -e/v0  # время окончания проезда поезда
t = -s/v1  # время прибытия авто к переезду
result = (f-s)/v1+(0, t2-t)[t1 < t < t2]
print(f'{result:.3f}')
Добавлено через 4 минуты
idealist, чуть-чуть опередил.
Единственное, проверка не совсем корректна, если скорость будет отрицательна, т.е. поезд движется справа налево или авто сверху вниз..
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
28.06.2023, 08:11
Цитата Сообщение от u235 Посмотреть сообщение
Единственное, проверка не совсем корректна, если скорость будет отрицательна, т.е. поезд движется справа налево или авто сверху вниз..
Не, по условию
Цитата Сообщение от Монгол 3000Е Посмотреть сообщение
v0 и v1 больше 0
1
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
28.06.2023, 08:12
idealist, согласен. Тогда, видимо, имеется ввиду, что задан модуль скорости. Но b может быть как больше e, так и меньше, это не противоречит условиям..
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
28.06.2023, 08:31
Цитата Сообщение от u235 Посмотреть сообщение
Но b может быть как больше e, так и меньше, это не противоречит условиям..
Не, по условию
Цитата Сообщение от Монгол 3000Е Посмотреть сообщение
поезд – отрезком постоянной длины, движущимся в том направлении, где расположена голова.
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
28.06.2023, 09:48
idealist, b=2, e=5 поезд движется в сторону перекрестка. b<e
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
28.06.2023, 10:09
u235, хотя вот у меня условие
Цитата Сообщение от idealist Посмотреть сообщение
and b <= 0:
некорректно, так как требуется, чтобы не голова поезда была левее переезда, а хвост, но оба эти условия избыточны, так как они дублируют условие
Цитата Сообщение от idealist Посмотреть сообщение
t1 <= t0 < t2
, так что корректнее так будет:

Python
1
2
3
4
5
6
7
8
9
10
b, e, v0 = map(int, input('b, e, v0 ->').split())
s, f, v1 = map(int, input('s, f, v1 ->').split())
t = (f-s)/v1
if s <= 0 and f >= 0:
    t1 = -b/v0
    t2 = -e/v0
    t0 = -s/v1
    if t1 <= t0 < t2:
        t += t2 - t0
print(f'{t:.3f}')
Добавлено через 3 минуты
Цитата Сообщение от u235 Посмотреть сообщение
b=2, e=5 поезд движется в сторону перекрестка. b<e
Не, по условию поезд движется вправо, и
Цитата Сообщение от Монгол 3000Е Посмотреть сообщение
поезд – отрезком постоянной длины, движущимся в том направлении, где расположена голова
т.е. голова тоже расположена справа от хвоста.

Добавлено через 6 минут
u235, кстати, в вашей программе не отслеживается, что произведение s*f <= 0, т.е., что автомобиль пересекает переезд. Если это не так, то ответ может быть некорректным.
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
28.06.2023, 10:48
По условию, как раз и не сказано что вправо.
В моей программе вообще без проверок. Я рассчитывал на то, что скорость может быть отрицательной, как оказалось это не так. Т.е. мне тоже надо модифицировать программу.
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
28.06.2023, 11:19
Цитата Сообщение от u235 Посмотреть сообщение
По условию, как раз и не сказано что вправо.
Ну, направления векторов скоростей заданы на рисунке, в условии по условию указываются только их модули. Поезд - вправо, автомобиль - вверх.
0
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
28.06.2023, 12:52
Цитата Сообщение от u235 Посмотреть сообщение
скорость может быть отрицательной
Не может она быть отрицательной, это же скорость, впрочем как и расстояние...
Что надо учитывать:
1. Нигде не сказано, что автомобиль обязательно должен пересекать ж/д переезд, т.е. s и f могут одновременно принадлежать как (0,+1000], так и [-1000,0)
2. Возможно и b > e, и b < e, но при условиях: если b<0 and e<0 тогда b>e, а если b>0 and e>0 тогда b<e, т.е. поезд должен двигаться в центр координат и вычислять требуется только время от начала движения до пересечения центра (и головой, и хвостом).
3. Если таки автомобиль должен пересечь переезд, то добавляем дельту от периода из п.2 с учетом времени приближения автомобиля к центру, т.е. прибавляемую дельту ожидания, необходимо вычислять (если же пересекать не надо, то учитываем только время движения автомобиля).
4. На рисунок опираться нельзя, это всего лишь частный случай...

Добавлено через 4 минуты
Цитата Сообщение от idealist Посмотреть сообщение
направления векторов скоростей заданы на рисунке
не-а, на рисунке ничего не задано, по условию задачи:
Цитата Сообщение от Монгол 3000Е Посмотреть сообщение
На рисунке представлен только один из множества возможных примеров.


Добавлено через 22 минуты
а, да, ещё один момент:
5. поезд может в начальный момент времени УЖЕ находиться на переезде (во всяком случае, я не нашел условий, которые запрещали бы такое расположение), т.е. b<0 and e>0 или b>0 and e<0, тоже допустимо.
1
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
28.06.2023, 12:57
YuS_2, ок, поправлю: проекция вектора скорости на ось x (y) может быть отрицательной.
1
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
28.06.2023, 13:13
u235, это да... вектор с проекцией могут принимать и отрицательные значения, т.к. есть точки отсчета.
Но в данном случае, имхо, проще оперировать модулями координат расстояния, чем отрицательными векторами...
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
28.06.2023, 16:12
YuS_2, ну, вы либо задание не прочитали, либо троллите
0
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
28.06.2023, 16:15
Цитата Сообщение от idealist Посмотреть сообщение
ну, вы либо задание не прочитали, либо троллите
чойта?
Аргументируйте...
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
28.06.2023, 16:30
Цитата Сообщение от YuS_2 Посмотреть сообщение
чойта?
Аргументируйте...
Да вообще в ваших высказываниях не вижу логики, так что там не с чем спорить... Типа, я художник, я так вижу... Но к матюгатике це не имеет отношения...
0
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
28.06.2023, 21:22
Цитата Сообщение от idealist Посмотреть сообщение
Да вообще в ваших высказываниях не вижу логики
А суслика там не видно? ...А он там есть
В моих высказываниях логику искать не надо, там всё строго по условиям задачи.
Если видите противоречие - озвучьте его, а если не нашли, то о чем хихикаем тогда?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
b, e, v0 = map(int, input().split())
s, f, v1 = map(int, input().split())
 
if ((b >= 0 and e > 0) and b < e) or ((b <= 0 and e < 0) and b > e):
    b0, e0 = abs(b), abs(e)
    tc, to = b0/v0, (e0-b0)/v0
elif (b > 0 and e <= 0) or (b < 0 and e >= 0):
    b0, e0 = abs(b), abs(e)
    tc, to = 0, e0/v0
else:
    tc, to = 0, 0
 
dt = 0
if (s < 0 and f > 0) or (s > 0 and f < 0):
    s0, f0 = abs(s), abs(f)
    ds, df = s0/v1, f0/v1
    t = ds + df
    if tc <= ds < (tc + to):
        dt = tc + to - ds
else:
    t = abs(s - f)/v1
 
res = t + dt
print(f'{res:.3f}')
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.06.2023, 21:22
Помогаю со студенческими работами здесь

[LOGO! Soft Comfort] Имитация работы светофора на железнодорожном переезде
Имитация работы железнодорожного переезда. Описание: светодиоды мигают при срабатывании тумблера 1 (поднятие защитного барьера) и...

как перевозить компьютер при переезде из одного города в другой?
Доброго времени суток, мне предстоит переезд, все вещи будут погружены в газель и будут находиться в пути часов 8. Как мне лучше упаковать...

Что выбрать: редирект или подмену ссылок при переезде сайта?
Доброго времени суток, уважаемые! В связи с переездом сайта возник вопрос (поиском честно похожего ничего не нашел) по сохранению...

При переезде сайта ucoz на https перестали работать всплывающие картинки
Здравствуйте. Писал в поддержку ucoz и получил ответ от которого не полегчало. Вопрос: При переезде сайта ucoz на https...

Проблемы при переезде с Office 2019 на Office 2021
Имеются следующие фрагменты кода: static Application app; static Document doc; static Paragraph prg; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru