イベントをその日までにグループ化したい。 Prefact:Rubyでの高度なグループ化
Available days are 1,2,3,4,5,6,7
One event can not contain duplicates. e.g [1,1,2,3]
Setup is Ruby 1.9.2 with Rails 3.2
イベントが8~10以上の属性のように含有されている(例に含めるする必要はなく、これらの属性がまだグループ化した後に存在するべきであると考えるべきである。)換言すれば、イベントオブジェクトはいけませんそのままでグループ分けされています。
events = [
{
:name => "event1",
:days => [1,2,3,4,5]
},
{
:name => "event2",
:days => [1,4,5]
},
{
:name => "event3",
:days => [1]
},
{
:name => "event4",
:days => [2]
},
{
:name => "event5",
:days => [3]
},
{
:name => "event6",
:days => [4]
},
{
:name => "event7",
:days => [5]
},
{
:name => "event8",
:days => [1,2,3]
},
{
:name => "event9",
:days => [1,5]
},
{
:name => "event10",
:days => [1,2]
},
{
:name => "event11",
:days => [1,2,3,4,5]
}
]
イベントをグループ化するには、少なくとも3日持っている必要があります。
は、オブジェクトの配列を考えてみましょう。そして、今日は数値順でなければなりません。
例(グループ化されるべきである):[1,2,3]
例(グループ化されるべきではない)ではない[1,4,5]
イベント彼らが含まれている毎日に配置する必要があります。
例:それは非常に高度ルビー
[
{
:heading => "1",
:events => [
{
:name => "event3",
:days => [1]
},
{
:name => "event9",
:days => [1,5]
},
{
:name => "event10",
:days => [1,2]
},
{
:name => "event2",
:days => [1,4,5]
}
]
},
{
:heading => "2",
:events => [
{
:name => "event4",
:days => [2]
},
{
:name => "event10",
:days => [1,2]
}
]
},
{
:heading => "3",
:events => [
{
:name => "event5",
:days => [3]
}
]
},
{
:heading => "4",
:events => [
{
:name => "event6",
:days => [4]
},
{
:name => "event2",
:days => [1,4,5]
}
]
},
{
:heading => "5",
:events => [
{
:name => "event7",
:days => [5]
},
{
:name => "event9",
:days => [1,5]
},
{
:name => "event2",
:days => [1,4,5]
}
]
},
{
:heading => "1-3",
:events => [
{
:name => "event8"
}
]
},
{
:heading => "1.5",
:events => [
{
:name => "event1"
},
{
:name => "event11"
}
]
}
]
:[1,4,5】上記1,4および5
にイベント配列の所望の結果を配置する必要がありますここに。私にとってはあまりにも進んでいるかもしれませんが、私が試したことのすべてが方程式の一部を欠いてしまいます。しかしねえ、それはRubyだ、それほど難しいはずはない?
EDIT:明確化と修正期待される出力
event8は3日連続していますが、出力は分割されていますか? – tokland
あなたのルールによれば、event8は "1-3"グループに入るべきではありませんか? – DigitalRoss
「1,3,4,5」はどうですか?それは別の '1'を、次に' 3-5'のグループを持っていますか?それとも、何もグループ化しないだろうか?そして、「1,1,2,3」や「5,3,1」のような日を持つことは可能ですか? – Amadan