Я пишу алгоритм, который включает в себя набор чисел и помещение их в ведра. Можете ли вы помочь мне реализовать эти два простых метода? Дайте мне знать, если мне нужно больше объяснить.Разделите целочисленный диапазон на почти равные целые диапазоны
// 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;
В чем смысл 'size' в декларации' parts'? Это количество ведер или приблизительный размер каждого ведра? Кроме того, как должен ваш алгоритм делить 10 на 4 ведра - это «2, 2, 2, 4» приемлемо? Является ли «3, 3, 3, 1» приемлемым? Есть ли только один правильный ответ или есть свобода в выборе того, как разделить предметы? Я думаю, вы должны ответить ** на все эти вопросы, чтобы сделать ваш пост более ясным. – anatolyg
спасибо @anatolyg. Я редактировал свой вопрос. – cambunctious