Вот моя проблема на английском:
- У меня есть несколько
WidgetContainer
объектов.
- Каждый
WidgetContainer
будет иметь хотя бы один Widget
.
- Каждый
WidgetContainer
хочет отображать одно из Widgets
n
раз в день.
Widgets
может отображаться на «х» числе Venues
.
- A
Widget
отображается ровно t
секунд до того, как следующий запланированный WidgetContainer's
Widget
займет свое место.
- Если весь день не заполнен, тогда ничего не должно отображаться в это время (реклама должна быть равномерно распределена в течение дня
t
секунд за раз)
А вот объекты, представленные псевдокодом:
var WidgetContainers = [
{
DailyImpressionsRequired: 52, // should be split between Venues
Widgets: ["one", "two"],
Venues: ["here", "there"]
},
{
DailyImpressionsRequired: 20,
Widgets: ["foo"],
Venues: ["here", "there", "everywhere"]
},
{
DailyImpressionsRequired: 78,
Widgets: ["bar", "bat", "heyhey!"],
Venues: ["up", "down", "allAround"]
}
];
var SecondsInADay = 86400;
var DisplayInterval = 30; // seconds
var TotalNumverOrVenues = /*eh, some calulations...*/;
var AvailableSlots = /*eh, some calulations...*/;
var SlotsNeeded = /*eh, some calulations...*/;
Мне нужно найти эффективный способ расчета равномерно распределенного расписания для этих объектов. Эти "объекты" являются объектами linq-to-sql, поэтому некоторые предложения linq были бы хорошими
Моя идея сейчас состоит в том, чтобы сплющить WidgetContainers
до Widgets
; разделив их DailyImpressions
на число Widgets
.
Я мог бы понять это легко, если бы не было нескольких и разных мест, чтобы принять во внимание.
У меня такое ощущение, что мне просто нужно увидеть взгляд другого человека на проблему, поскольку я так долго на нее смотрел.
Итак, любая помощь, которая могла бы направить меня в правильном направлении или дать представление о проблеме, даже если она очевидна, будет принята с благодарностью!