2 / 2 / 1
Регистрация: 18.03.2014
Сообщений: 147
|
||||||
1 | ||||||
Вычислить момент времени когда расстояние между лидирующим и замыкающим велосипедистами будет минимальным27.04.2015, 19:44. Показов 5298. Ответов 19
Метки нет (Все метки)
Велосипедисты, участвующие в шоссейной гонке, в некоторый момент времени, который
называется начальным, оказались в точках, удаленных от места старта на x1, x2, …, xn метров (n – общее количество велосипедистов). Каждый велосипедист двигается со своей постоянной скоростью v1, v2, …, vn метров в секунду. Все велосипедисты двигаются в одну и ту же сторону. Репортер, освещающий ход соревнований, хочет определить момент времени, в который расстояние между лидирующим в гонке велосипедистом и замыкающим гонку велосипедистом станет минимальным, чтобы с вертолета сфотографировать сразу всех участников велогонки. Требуется написать программу, которая по заданному количеству велосипедистов n, заданным начальным положениям велосипедистов x1, x2, …, xn и их скоростям v1, v2, …, vn, вычислит момент времени*t, в который расстояние l между лидирующим и замыкающим велосипедистом будет минимальным. Ввод. Первая строка содержит целое число n**– количество велосипедистов. В следующих n строках указаны по два целых числа: xi – расстояние от старта до i-го велосипедиста и vi – его скорость (0*≤*xi, vi*≤*107). Вывод. В выходной файл необходимо вывести два вещественных числа: t – время в секундах, прошедшее от начального момента времени до момента, когда расстояние в метрах между лидером и замыкающим будет минимальным, l – искомое расстояние. Числа t и l должны иметь абсолютную или относительную погрешность не более 10-6, что означает следующее. Пусть выведенное число равно x, а в правильном ответе оно равно y. Ответ будет считаться правильным, если значение выражения |x*–*y|*/*max{1,*|y|} не*превышает 10-6.
У меня есть некоторые идеи, вообщем они таковы: 1) решить даную задачу используя НОД, а именно: вычислить tmin замыкаюшего и tmax лидирующего, и найти их НОД, а дальше не пойму, может не так думаю) 2) вот допустим взять велосипедиста (0 40) и (40 30), и найти время за который 1 догонит 2, то время получится 4 часа, а если 2 - 3, то 30 минут, почему тогда в выводе вообще получается 1 час? 3) найти среднее значение скорости и среднее значение пути нескольких велосипедистов, дальше найти какой то опеределенный их НОД и дальше уже от него оттаклкиваться от него? Правильно ли я мыслю, может есть какая более правильная реализация алгоритма?
0
|
27.04.2015, 19:44 | |
Ответы с готовыми решениями:
19
Найти методом биссекций момент времени, когда хранилище будет переполнено Найти зависимость от времени угла α между векторами скорости и ускорения , его величину в момент времени t Момент времени между моментами времени Расстояние между первым и последним минимальным элементом |
18 / 18 / 10
Регистрация: 20.04.2015
Сообщений: 108
|
||||||
28.04.2015, 03:30 | 2 | |||||
Сообщение было отмечено Kronos0041 как решение
Решение
а расстояния от старта до финиша нет?
Добавлено через 16 минут вот тебе идея: 1.создаешь класс велосипедист в котором есть 2 параметра велосипедиста + функция которая делает шаг времени(которая меняет xi в зависимости от скорости) 2.создаешь массив этого класса [n] 3.находишь 2х велосипедистов которые в данный момент являются первым и последним и расстояние между ними записываешь в переменную(если расстояние меньше предыдущего конечно)(время тоже записываешь) 4.запускаешь цикл который вызывает функцию шаг времени(например +1минута) для каждого велосипедиста(лучше для этого функцию сделать) 5.goto 3 один минус: неизвестно только сколько шагов надо сделать Добавлено через 6 часов 50 минут сам посоветовал сам сделал -_- Кликните здесь для просмотра всего текста
1
|
2 / 2 / 1
Регистрация: 18.03.2014
Сообщений: 147
|
|
28.04.2015, 18:51 [ТС] | 3 |
нет, можно сказать идея правильная)
только вот ответ у вас всегда равен 0, а путь равен 30 км. при любых входных данных
0
|
18 / 18 / 10
Регистрация: 20.04.2015
Сообщений: 108
|
|
28.04.2015, 19:37 | 4 |
а вы пробывали шаг в 0.1 0.2 и тд?
в тех данных которые записаны чем дальше тем больше расстояние между ними
0
|
2 / 2 / 1
Регистрация: 18.03.2014
Сообщений: 147
|
|
28.04.2015, 19:43 [ТС] | 5 |
Тут нужен алгоритм Евклида применить, вот как это сделать...
0
|
18 / 18 / 10
Регистрация: 20.04.2015
Сообщений: 108
|
|
28.04.2015, 19:44 | 6 |
too late for this information....
1
|
2 / 2 / 1
Регистрация: 18.03.2014
Сообщений: 147
|
|
28.04.2015, 19:49 [ТС] | 7 |
это в минутах время получается? вы как скорость рассматривали как в км/ч или в м/с или в минутах? а путь в км, м, см?
0
|
18 / 18 / 10
Регистрация: 20.04.2015
Сообщений: 108
|
||||||
28.04.2015, 20:08 | 8 | |||||
это в единицах времени и единицах расстояния за еденицу времени
Добавлено через 55 секунд
Добавлено через 14 минут и в данный момент он на 30 ед расстояния от старта
1
|
2 / 2 / 1
Регистрация: 18.03.2014
Сообщений: 147
|
|
28.04.2015, 20:23 [ТС] | 9 |
ага, вы оказались правы, только от 50 до 100 шагов еще корректно все выполняется, но это очень долго) если вводить шаг на 0.1)
0
|
18 / 18 / 10
Регистрация: 20.04.2015
Сообщений: 108
|
|
28.04.2015, 20:36 | 10 |
вы его на калькуляторе что ли выполняете?
у меня задержка есть только при 1млн шагов по 0.1 а так мгновенно всегда показывает
0
|
2 / 2 / 1
Регистрация: 18.03.2014
Сообщений: 147
|
||||||
29.04.2015, 09:24 [ТС] | 11 | |||||
сложность O(N^2n), может и хорошее решение, еще полностью не проверял, но пока что помечу как наилучшее, так как в голову пока ничего не приходило, хотя чувствую, что можно решить за O(N) при алгоритме Евклида)
Добавлено через 1 час 10 минут вот при таких данных время получается 0.0000
0
|
18 / 18 / 10
Регистрация: 20.04.2015
Сообщений: 108
|
|
29.04.2015, 13:22 | 12 |
1 строка не задана скорость, если скорость у 1 обьекта 0 то единственный момент когда расстояние между максимальным и минимальным самое меньшое это начало отсчета тоесть 0.0000
p.s. вы размер массива изменяли перед тем как добавлять больше 5ти обьектов?
1
|
2 / 2 / 1
Регистрация: 18.03.2014
Сообщений: 147
|
|
29.04.2015, 18:45 [ТС] | 13 |
кажется понял, то есть в этом случае когда скорость например 10 км в час где 1 игрок, то просто он не попадает в кадр, поэтому время равно 0, так?
0
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||||||
29.04.2015, 20:26 | 14 | |||||
1
|
18 / 18 / 10
Регистрация: 20.04.2015
Сообщений: 108
|
|
29.04.2015, 21:06 | 15 |
Kronos0041, если скорость у первого 10 км/ч то расстояние между первым и последним будет увеличиваться с каждым шагом и никогда не станет меньше изначального это означает что фоткать надо вот прямо сейчас
0
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||||||
30.04.2015, 18:19 | 16 | |||||
Мою программу еще можно ускорить. В ней из каждой группы велосипедистов с одинаковыми стартовым расстоянием и скоростью берется только один.
В этой программе из каждой группы велосипедистов с одинаковой скоростью, но разными стартовыми расстояниями берутся только два – лидер и замыкающий, так как промежуточные на результат не влияют. Т.е. если у нас стартуют миллиард велосипедистов с одинаковыми скоростью и расстоянием, то из них берется только один. Если стартует миллиард велосипедистов с одинаковой скоростью, но разными расстояниями, то из них берутся только два. Итого из двух миллиардов велосипедистов для расчетов берем только троих.
0
|
18 / 18 / 10
Регистрация: 20.04.2015
Сообщений: 108
|
|
30.04.2015, 18:26 | 17 |
задача основана на том что у каждого персональные хар-ки,а при условиях выше фотограф может делать фото в любой момент времени т.к. колонна будет всегда одинакового размера
0
|
2 / 2 / 1
Регистрация: 18.03.2014
Сообщений: 147
|
|
30.04.2015, 18:38 [ТС] | 18 |
Велогонка - ошибка на тесте
2 1 2 2 1 Правильный ответ 1.00000000000000000000 0.00000000000000000000 А у тебя 0.5 0.000000
0
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
30.04.2015, 18:54 | 19 |
Не выдумывайте, там в примере как раз даются два велосипедиста с совпадающими характеристиками.
Ну дак может быть несколько колонн, каждая из которых двигается со своей скоростью. Из каждой колонны достаточно взять только концевых.
1
|
18 / 18 / 10
Регистрация: 20.04.2015
Сообщений: 108
|
||||||
30.04.2015, 19:44 | 20 | |||||
когда переделывал с int на float забыл поменять тип функции получения x на float
вот рабочая версия Кликните здесь для просмотра всего текста
Добавлено через 2 минуты Mr.X, извиняюсь думал вы говорите про всю группу велосипедистов сразу
0
|
30.04.2015, 19:44 | |
30.04.2015, 19:44 | |
Помогаю со студенческими работами здесь
20
Расстояние между максимальным и минимальным значениями функции Момент времени, когда два тела будут находиться на одинаковой высоте Определите модуль абсолютного ускорения точки M в момент времени, когда координата S = 0 Определить расстояние между максимальным и минимальным значениями функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |