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

ParameterTypeDescription
numberOfItemsnumber & Brand<"Int"> & Brand<"NonNegative">-
numberOfBucketsnumber & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">Default: 16
minNumberOfItemsPerBucketnumber & 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">>

Was this page helpful?