@haensl/subset-sum

Find a combination of integers to reach a given sum.

Usage no npm install needed!

<script type="module">
import haenslSubsetSum from 'https://cdn.skypack.dev/@haensl/subset-sum';
</script>

Subset sum Node.js module to compute solutions to the Coin changing problem, i.e. find combinations of integers from a given set of available integers that sum up to a desired result.

Quick start

1. Install the library

via npm

npm i -S @haensl/subset-sum

via yarn

1. Use the library in your code

in CommonJS (e.g. Node.js)

const sumService = require('@haensl/subset-sum');

const numbers = [1, 4, 2, 5, 1, 3];
const target = 6;
const solver = sumService.subsetSum(numbers, target);

for (let solution of solver) {
console.log(solution);
}

in ESM (e.g. Browser)

import sumService from '@haensl/subset-sum';

const numbers = [1, 4, 2, 5, 1, 3];
const target = 6;
const solver = sumService.subsetSum(numbers, target);

for (let solution of solver) {
console.log(solution);
}

API

subsetSum(numbers, target) => Generator

Returns a generator that yields arrays of integers from numbers that add up to target.

uniqueSolutions(solutions) => Array

Filters solutions for unique solutions.

isSameSolution(solutionA, solutionB) => boolean

Compares to solutions and determines if they are equal, i.e. contain the same integers. E.g. [1, 1, 3, 1] and [1, 3, 1, 1] are considered equal.