|
|
|
Алгоритм need! Попадание заданного момента или промежутка времени в заданое расписание
|
|||
|---|---|---|---|
|
#18+
Приветы! Имеется событие, момент наступления которого определяется одним из следующих условий либо какими-то из их допустимых комбинаций: 1. Абсолютное время (напр., совещание 14.12.2011 в 17:00) 2. Относительное время (необходимо указать абсолютное, напр. через 2 ч. после совещания, описанного выше) 3. Период, когда событие возможно (абсолютный либо относительный, напр. пьянка на работе через 1-2 часа после окончания совещания) 3. Периодичность и смещение (напр., все вышеописанное - каждый вторник каждой четной недели) Кроме того, момент наступления события может определяться последовательностью законов, где каждый следующий закон реализуется в рамках предыдущего, т.е. более высокого по иерархии, например: каждый високосный год > каждый квартал > каждый второй месяц > каждый 17-й день Ищется алгоритм, который определит, возможно ли наступление события, заданного таким расписанием, в определенный момент времени или промежуток времени (в терминах примеров выше - может ли получиться, что в пасхальную неделю у нас состоится застолье). В общем-то, видится возможность написания развесистой формулы, но если все уже придамано до нас, буду признателен наводке Спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2011, 06:16 |
|
||
|
Алгоритм need! Попадание заданного момента или промежутка времени в заданое расписание
|
|||
|---|---|---|---|
|
#18+
Поскольку длина года и длина месяца не везде одинаковая, это сложно привести к одной периодической функции. Пока что вижу вариант такой: разбиваем год на часы (или минуты и т.д.), рендерим расписание и сохраняем его в виде битовой карты, где бит = 1, если расписание попадает на заданный час. Во время поиска нужно будет сделать просто AND, и если хотя б ы один бит = 1, то расписание попадает в искомый промежуток времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2011, 08:20 |
|
||
|
Алгоритм need! Попадание заданного момента или промежутка времени в заданое расписание
|
|||
|---|---|---|---|
|
#18+
Dmitry Gurianovвидится возможность написания развесистой формулы Если нужна тока возможность/невозможость события, то ИМХО не надо формулу. Почему не проверять просто, список (или дерево) условий, по порядку? Но может быть, что надо Вам не просто можно/нельзя, а желательно/нежелательно, сделать/перенести/отменить, и тд. Это уже оптимизация, Вам надо в математическое программирование. Ищите в гуглях: "линейное программирование", "динамическое программирование", "симплекс метод", "оптимальное планироание", "задача комивояжера". Удачи. И + в любом случае не уверена что надо приводить к часам. Праздники/пасхи, перенос выходных, ввод/отмена зимнего вр. , и тд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2011, 13:25 |
|
||
|
|

start [/forum/topic.php?fid=16&tid=1342639]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
210ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 523ms |

| 0 / 0 |
