The Bicycle Lock Problem

BICYCLE_LOCK is a MATLAB program which simulates the process of determining the combination of a bicycle lock, which is simply an integer between 000 and 999.

This program demonstrates the method of exhaustive search, that is, it searches for an answer by trying every possibility.


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


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

Related Data and Programs:


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

COMBINATION_LOCK, a MATLAB library which simulates the process of determining the secret combination of a lock with M dials and N possible digits.

COMBO, a MATLAB library which includes many combinatorial routines.

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

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

SUBSET, a MATLAB library which enumerates combinations, partitions, subsets, index sets, and other combinatorial objects.

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

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


  1. Donald Kreher, Douglas Simpson,
    Combinatorial Algorithms,
    CRC Press, 1998,
    ISBN: 0-8493-3988-X,
    LC: QA164.K73.
  2. Silvano Martello, Paolo Toth,
    Knapsack Problems: Algorithms and Computer Implementations,
    Wiley, 1990,
    ISBN: 0-471-92420-2,
    LC: QA267.7.M37.

Source Code:

Last modified on 01 December 2018.