数値のセットを取ってバケットに入れるアルゴリズムがあります。これら2つの簡単な方法を実装する手助けはできますか?もっと説明する必要があるかどうかを教えてください。整数の範囲をほぼ等しい整数の範囲に分割する
// return a vector where each element represents the
// size of the range of numbers in the corresponding bucket
// buckets should be equal in size +/- 1
// doesn't matter where the bigger/smaller buckets are
vector<int> makeBuckets(int max, int numberOfBuckets);
// return which bucket n belongs in
int whichBucket(int max, int numberOfBuckets, int n);
出力例
makeBuckets(10, 3) == { 3, 3, 4 }; // bucket ranges: (0, 2), (3, 5), (6, 9)
whichBucket(10, 3, 0) == 0;
whichBucket(10, 3, 1) == 0;
whichBucket(10, 3, 2) == 0;
whichBucket(10, 3, 3) == 1;
whichBucket(10, 3, 4) == 1;
whichBucket(10, 3, 5) == 1;
whichBucket(10, 3, 6) == 2;
whichBucket(10, 3, 7) == 2;
whichBucket(10, 3, 8) == 2;
whichBucket(10, 3, 9) == 2;
「パーツ」の宣言にある「サイズ」の意味は何ですか?バケットの数、または各バケットのおおよそのサイズですか?また、あなたのアルゴリズムは10を4つのバケットにどのように分けるべきですか?「2、2、2、4」は受け入れられますか? 「3,3,3,1」は受け入れ可能ですか?正解は1つだけですか、項目を分割する方法を自由に選択できますか?あなたのポストをより明確にするために、これらの質問のすべて**に答えなければならないと思います。感謝@anatolyg – anatolyg
。私は私の質問を編集しました。 – cambunctious