The Partition Problem

PARTITION_PROBLEM is a C++ library which seeks solutions of the partition problem, splitting a set of integers into two subsets with equal sum.


The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.


PARTITION_PROBLEM is available in a C version and a C++ version and a FORTRAN90 version and a FORTRAN77 version and a MATLAB version and a Python version.

Related Data and Programs:

CHANGE_MAKING, a C++ library which considers the change making problem, in which a given sum is to be formed using coins of various denominations.

COMBO, a C++ library which includes many combinatorial routines.

KNAPSACK_01, a C++ library which uses brute force to solve small versions of the 0/1 knapsack problem;

PARTITION_PROBLEM, a dataset directory which contains examples of the partition problem, in which a set of numbers is given, and it is desired to break the set into two subsets with equal sum.

SATISFY, a C++ program which demonstrates, for a particular circuit, an exhaustive search for solutions of the circuit satisfiability problem.

SUBSET, a C++ library which enumerates, generates, ranks and unranks combinatorial objects including combinations, partitions, subsets, index sets, and trees.

SUBSET_SUM, a C++ library which seeks solutions of the subset sum problem.

TSP_BRUTE, a C program which reads a file of city-to-city distances and solves the traveling salesperson problem, using brute force.


  1. Alexander Dewdney,
    The Turing Omnibus,
    Freeman, 1989,
    ISBN13: 9780716781547,
    LC: QA76.D45.
  2. Brian Hayes,
    The Easiest Hard Problem,
    American Scientist,
    Volume 90, Number 2, March-April 2002, pages 113-117.
  3. Silvano Martello, Paolo Toth,
    Knapsack Problems: Algorithms and Computer Implementations,
    Wiley, 1990,
    ISBN: 0-471-92420-2,
    LC: QA267.7.M37.

Source Code:

Examples and Tests:

List of Routines:

You can go up one level to the C++ source codes.

Last revised on 12 May 2012.