API Reference / @evolu/common / Number / computeBalancedBuckets
Function: computeBalancedBuckets()
function computeBalancedBuckets(
numberOfItems,
numberOfBuckets,
minNumberOfItemsPerBucket): Result<readonly [number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">, number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">], number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">>;
Defined in: packages/common/src/Number.ts:62
Divides items into buckets as evenly as possible, ensuring each bucket has at least the minimum number of items. Returns a success result if the minimum is met, or an error result with the required number of items if not.
Example
computeBalancedBuckets(10, 3, 2); // Returns ok([4, 7, 10])
computeBalancedBuckets(5, 3, 2); // Returns err(6)
Parameters
Parameter | Type | Description |
---|---|---|
numberOfItems | number & Brand <"Int" > & Brand <"NonNegative" > | - |
numberOfBuckets | number & Brand <"Int" > & Brand <"NonNegative" > & Brand <"Positive" > | Default: 16 |
minNumberOfItemsPerBucket | number & Brand <"Int" > & Brand <"NonNegative" > & Brand <"Positive" > | Default: 2 |
Returns
Result
<readonly [number
& Brand
<"Int"
> & Brand
<"NonNegative"
> & Brand
<"Positive"
>, number
& Brand
<"Int"
> & Brand
<"NonNegative"
> & Brand
<"Positive"
>], number
& Brand
<"Int"
> & Brand
<"NonNegative"
> & Brand
<"Positive"
>>