私は日付範囲があり、日付範囲をチャンク(ユーザーが提供する数量)に分割したいという問題があります。各チャンクは1ヶ月間の連続した範囲でなければなりません。最長のチャンクは、最短のチャンクよりも1か月以上長くなければなりません。グループの日付範囲はバケットになります
日付範囲は、同様に、全体ヶ月以下のとおりです。
- 開始日は常に
- 終了日は常に月の最後の日になります月の最初のものです。
入力範囲は、各チャンクが少なくとも1ヶ月を1つ以上持つことができるほど十分に大きいと仮定できます。
例えば、日付範囲1/1/2000から8/31/2000の8つのチャンクが要求されていることはごく簡単な例です。その後、それぞれのチャンクは完全な月になるでしょう。
この問題を考えるための簡単な方法は、1-15 から番号のリストを考えてみましょう 次のようであり、我々は8つのチャンク 可能な組み合わせにそれらを分割したいが、私はジョダ考えた
(1),(2),(3),(4),(5),(6),(7),(8,9,10,11,12,13,14,15) -> satisfies only one constraints of using up all the chunks
(1,9),(2,10), (3,11), (4,12), (5,13), (6,14), (7,15), (8) ---> satisfies only 1 constraint of minimizing the difference between maximum number and minimum numbers in a chunk.
(1,2), (3,4), (5,6), (7,8) (9,10), (11,12) (13,14), 15 ---> correct
です日付ライブラリとしての時刻。
これは宿題の問題ではありません。私は入力として日付範囲を取るクエリを並列化しようとしています。チャンクはコアであることが意図されており、コア全体の後続の日付範囲に対してクエリを実行したいと考えています。
これまでに何を試しましたか?これは宿題のように聞こえる...特定の質問をしてください。 [SOの質問をするにはここを見てください](https://stackoverflow.com/help/how-to-ask) –
何を試すことができますか?私はこの問題を私がどこにいるのか分かっていた。それは差を最小にするという制約である。 私は質問が下の投票に値すると思うとは思わない – AnyaK