Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алгоритм нахождения одновременно находящихся самолётов в полёте по расписанию. / 15 сообщений из 15, страница 1 из 1
08.12.2005, 02:35
    #33423788
jefopjq[vn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм нахождения одновременно находящихся самолётов в полёте по расписанию.
Задача: Есть данные по расписанию - время отправления и время прибытия. Вообщем двухмерный массив с временем отправления и временем прибытия. Нужно выяснить есть ли в какие ли бо моменты времени в которых одновременно в полёте больше 20 самолётов.
Никак немогу сообразить над алгоритмом . Но может кто то уже решал подобные задачи, может даже из классиков Вирт, Кнут... Подскажите плз или киньте ссылки на такого рода алгоритмы, программы. Пишу на VBA под Excel, Си тоже понимаю, да и Паскаль немного.

Сам только до такого додумался:

mput(0, j) - время отпрвления
mput(1, j) - время прибытия
s - количество столбцов в массиве

For f = 1 To s
k = f
Do While mput(1, f) >= mput(0, k + 1) 'Если время прибытия этого самолёта больше времени отправления следующего(массив отсортировал по времени отправления)
odnvr = odnvr+1
k = k + 1
If k > s Then
Exit Do
End If
Loop

If odnvr > 20 Then
MsgBox "Da, bolshe"
End If
odnvr = 0
Next - Метод естественно неполный и непрваильный...
...
Рейтинг: 0 / 0
08.12.2005, 03:20
    #33423795
Tov. Drujba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм нахождения одновременно находящихся самолётов в полёте по расписанию.
Немного смущает "момент времени". Какая точность нужна? Предположим, что до минуты. Теперь делаем второе допущение - самое большое время нахождения самолета в воздухе - 8 часов. Получаем 7:59 минут в сторону обратно от сейчас и столько же в сторону будущего. И того имеем массив из значений -(7*60+59) и +(7*60+59). Т.е. набор точек, на котором можно задать интервалы пребываения самолета в полете. Теперь осталось наложить на эту временную последовательность отрезки нахождения всех самолетов в воздухе и найти пересечения отрезков. Т.е. здесь уже работает элементарная алгебра.
...
Рейтинг: 0 / 0
08.12.2005, 05:18
    #33423822
jefopjq[vn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм нахождения одновременно находящихся самолётов в полёте по расписанию.
Несовсем понял зачем допущение и какой от него толк. Ну у меня тогда 24 часа(в пределах суток) оно. Точность да, до минуты.
Неврубаюсь как реализовать, например массив:
Отпраление Прибытие
1:00 9:00
2:00 3:00
2:30 3:00
3:10 12:00
5:00 6:00
8:00 14:00
...........................
...........................
...
Рейтинг: 0 / 0
08.12.2005, 10:54
    #33424373
Ivanych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм нахождения одновременно находящихся самолётов в полёте по расписанию.
отсортировать множество времён отправления и прибытия по возрастанию
потом идти по отсортированному списку, для каждого времени отправления увеличивать счётчик самолётов в воздухе на 1, для каждого времени прибытия уменьшать

...
Рейтинг: 0 / 0
09.12.2005, 04:59
    #33426331
jefopjq[vn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм нахождения одновременно находящихся самолётов в полёте по расписанию.
Ivanych
Понял - красивый метод. А я то уже думал....
Спасибо.

А звезда, что означает? Намёк на то что подобная тема уже была? Или это какой то отличительный знак?
...
Рейтинг: 0 / 0
09.12.2005, 10:20
    #33426669
Ivanych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм нахождения одновременно находящихся самолётов в полёте по расписанию.
jefopjq_vnА звезда, что означает? Намёк на то что подобная тема уже была? Или это какой то отличительный знак?это автоподпись

...
Рейтинг: 0 / 0
12.01.2006, 13:08
    #33478809
Angel Biker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм нахождения одновременно находящихся самолётов в полёте по расписанию.
Ivanychотсортировать множество времён отправления и прибытия по возрастанию
потом идти по отсортированному списку, для каждого времени отправления увеличивать счётчик самолётов в воздухе на 1, для каждого времени прибытия уменьшать




Не все предусмотрено.
если вылет в 23:00 а посадка в 2:00? (

Наверное надо дописать начальное значение счетчика теми самолетами которые уже в воздухе на время взлета/посадки первого самолета после сортировки.

Извините если не в тему.
...
Рейтинг: 0 / 0
12.01.2006, 13:39
    #33478938
Сергей Ильич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм нахождения одновременно находящихся самолётов в полёте по расписанию.
Angel BikerНе все предусмотрено.
если вылет в 23:00 а посадка в 2:00? (

Наверное надо дописать начальное значение счетчика теми самолетами которые уже в воздухе на время взлета/посадки первого самолета после сортировки.

Извините если не в тему.
Программы для самолетов тебе писать нельзя. Время надо считать в UTC в миллисекундах от начала эпохи.
...
Рейтинг: 0 / 0
12.01.2006, 13:48
    #33478972
AL_KIR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм нахождения одновременно находящихся самолётов в полёте по расписанию.
время можно считать и с первого января 1970 года,
а еще лучше с первого января 2000 года
...
Рейтинг: 0 / 0
12.01.2006, 13:59
    #33479020
Сергей Ильич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм нахождения одновременно находящихся самолётов в полёте по расписанию.
AL_KIRвремя можно считать и с первого января 1970 года,
а еще лучше с первого января 2000 года
Ну в общем это зависит от языка/ОС.
...
Рейтинг: 0 / 0
12.01.2006, 14:59
    #33479223
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм нахождения одновременно находящихся самолётов в полёте по расписанию.
И вообще массив должен быть: Время отправления,Время в пути
...
Рейтинг: 0 / 0
12.01.2006, 16:29
    #33479550
Сергей Ильич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм нахождения одновременно находящихся самолётов в полёте по расписанию.
AndreTMИ вообще массив должен быть: Время отправления,Время в пути
А что это даст?
...
Рейтинг: 0 / 0
12.01.2006, 17:41
    #33479759
mef
mef
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм нахождения одновременно находящихся самолётов в полёте по расписанию.
Сергей Ильич AndreTMИ вообще массив должен быть: Время отправления,Время в пути
А что это даст?
А это и даст решение. Если
Т1 - время отлёта в UTC
Т2 - время посадки в UTC
Тх - время в UTC, в которое требуется узнать количество самолётов,
то
select count(ID_Samolet) from Raspisanie Where
Tx between T1 and T2
вернёт искомое количество.
...
Рейтинг: 0 / 0
13.01.2006, 16:35
    #33481967
Angel Biker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм нахождения одновременно находящихся самолётов в полёте по расписанию.
2Сергей Ильич
Я пока для самолетов ничего и не программил :)
Просто в примере цифры были по часам.

2mef
Задача была другая.
Надо было определить промежутки времени а не количество самолетов в промежуток.


2ALL
что то мне кажется что тема для автора уже не актуальна.
...
Рейтинг: 0 / 0
15.01.2006, 03:56
    #33483216
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм нахождения одновременно находящихся самолётов в полёте по расписанию.
mefА это и даст решение.
Вот-вот.
Потому что зададим:
T1 - Время отправления - в UTC
Ts - Время в пути - в таких единицах, чтобы получить необходимую точность
вычислений (в часах или минутах или секундах или...)
T2=T1+функция_преобразования_единиц(Ts) - будет тоже в UTC, отпадет
проблема "с 23:00 до 2:00".
А далее, если не жалко ресурсов компа, можем пробежаться по всему
исследуемому периоду и сделать select'ы.
Другой разговор, что первоначальный вопрос стоял немного не так.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алгоритм нахождения одновременно находящихся самолётов в полёте по расписанию. / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]