change_diophantine


change_diophantine, an Octave code which sets up a Diophantine equation to solve the change making problem, which counts the number of ways a given sum can be formed using coins of various denominations.

The change making problem is given a target value C and a set of N coin denominations with value W. The task is to determine the minimum number of coins needed to form the given value.

In the unbounded change making problem, there are a limitless supply of coins of each denomination. In the bounded change making problem, each denomination is available only up to some given limit.

For some sets of denominations, there will be target values that cannot be formed. (This relates to Frobenius's problem.)

Licensing:

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

Languages:

change_diophantine is available in a MATLAB version and an Octave version..

Related Data and Programs:

change_diophantine_test

change_making, a dataset directory which contains test data for the change making problem;

combo, an Octave code which includes many combinatorial routines.

diophantine_nd, an Octave code which is given a Diophantine equation in N variables, and returns all strictly positive solutions, or all nonnegative solutions.

football_scores, an Octave code which counts the number of ways of achieving a given score in football.

mcnuggets, an Octave code which counts M(N), the number of ways a given number N of Chicken McNuggets can be assembled, given that they are only available in packages of 6, 9, and 20.

partition_brute, an Octave code which uses brute force to seek solutions of the partition problem, splitting a set of integers into two subsets with equal sum.

satisfy, an Octave code which demonstrates, for a particular circuit, an exhaustive search for solutions of the circuit satisfiability problem.

subset, an Octave code which enumerates, generates, ranks and unranks combinatorial objects including combinations, partitions, subsets, index sets, and trees.

subset_sum, an Octave code which seeks solutions of the subset sum problem, in which it is desired to find a subset of a set of integers which has a given sum.

tsp_brute, an Octave code which reads a file of city-to-city distances and solves the traveling salesperson problem, using brute force.

tsp_descent, an Octave code which is given a city-to-city distance map, chooses an initial tour at random, and then tries simple variations, seeking to quickly find a tour of lower cost for the traveling salesperson problem (TSP).

tsp_greedy, an Octave code which reads a file of city-to-city distances, and solves a small traveling salesperson problem (TSP) using the greedy algorithm. It picks a starting city at random, and then successively visits the nearest unvisited city.

Source Code:


Last revised on 19 October 2022.