Одновременные подключения, Excel - PullRequest
0 голосов
/ 01 декабря 2009

У меня есть список времени начала и окончания сеанса в следующем формате:

23/11/09 15:18:32, 23/11/09 15:18:40
23/11/09 15:20:02, 23/11/09 15:20:32
23/11/09 15:20:10, 23/11/09 15:20:40

В данный момент это в Excel, дата начала и времени в одном столбце дата и время в другом.

По сути, я хочу сделать некоторую постобработку этих данных. Я не уверен, что использовать, будь то для разработки собственного приложения или просто использовать Excel, где я надеялся на помощь.

По сути, я хочу потренироваться, скажем, в течение периода x, скажем для простоты, с 15:00 до 16:00. Основываясь на этих сессиях, я хочу выяснить, сколько одновременных соединений за этот час.

Есть идеи, предложения, как, что использовать? первенствует? VS2008?

Полагаю, единственная приятная вещь в поддержании его в Excel заключается в том, что я могу легко создавать диаграммы и т. Д., И я всегда изо всех сил пытался работать с объектами datetime в сравнении с

Ответы [ 2 ]

2 голосов
/ 01 декабря 2009

Я считаю, что это не простая проблема. Позвольте мне переформулировать вашу проблему: вы можете рассматривать каждое соединение как сегмент на линии с начальным и конечным значениями. То, что вы пытаетесь найти, - это наибольшее подмножество сегментов, которые имеют ненулевое пересечение; количество элементов в этом подмножестве - это количество одновременных соединений. Если вы можете решить эту проблему, поиск ответа в течение ограниченного промежутка времени должен быть тривиальным (просто «обрежьте» каждое соединение, чтобы, если начальное значение было до начала периода, соединение начинается с начала периода).
Причина, по которой я думаю, что это сложно, состоит в том, что если вы берете три сегмента, скажем, с 1:00 до 2:00, с 1:00 до 1:15 и с 1:45 до 2:00, все 3 перекрываются, но у вас есть только 2 одновременных соединения. Так что простой проверки того, сколько других соединений перекрывают каждое соединение, будет недостаточно, вам придется на самом деле рассмотреть, так сказать, перекрытия, так сказать.
Большинство вещей можно сделать в Excel, по крайней мере, если вы используете VBA, так что я не думаю, что это действительно ваша проблема - проблема в самом алгоритме.
Редактировать : Я немного покопался, и кажется, что Алгоритм Марзулло близок к тому, что вы пытаетесь сделать. Я выкопаю еще немного, но это может дать вам отправную точку.
Редактировать 2 Один "дешевый" способ получить достойный ответ / аппроксимацию - разбить период, который вы рассматриваете, на небольшие последовательные интервалы (например, перерыв один час в 5-минутных сегментах) и для каждого сегмента. подсчитать связи, которые перекрываются. Это должно быть намного быстрее, чем пытаться определить сегмент, где пересекается большинство сегментов!

0 голосов
/ 01 декабря 2009

Я полагаю, что действительно неэффективным методом было бы пошагово пройти начальное значение вызова, проверяя с помощью КАЖДОГО конечного значения вызова, которое больше, увеличивая счетчик, если он больше (при одновременном вызове)

тогда в определенное время я могу сказать, сколько их одновременных соединений ...

не думаю, что мне так сильно помогает, если я хочу сказать что-то вроде того, сколько одновременно между 14:00 и 15:00

ах

...