Date of Award

Spring 5-2014

Document Type


Degree Name

Master of Science (MS)


Computer Science

Committee Director

Stephen Olariu

Committee Member

Michele C. Weigle

Committee Member

Hussein A. Wahab

Call Number for Print

Special Collections LD4331.C65 N93 2014


Combinatorics is the science of "possibilities." This definition, while not formal is a fair statement because all too often, in order to gain insight into the solution of many counting problems, we explore the possibilities. In some cases we seek to know how many options, while in other cases we seek to enumerate or list the options. Irrespective of the scenario, combinatorics plays a vital role today. In many instances such as exploring the options for choosing a new password for a combination lock, we employ combinatorics. In considering the possible license plate permutations for a state, or to see if we have enough IP addresses or telephone numbers, we employ combinatorics. In fact, our DNA in the nucleus of our cells are combinatorial objects consisting of permutations with repetitions of nucleobases represented as (G - Guanine, A - Adenine, T- Thymine, C - Cytosine). So it is also fair to say combinatorics is part of our life. Combinatorics ( the branch of mathematics that deals with the arrangement of objects), offers many different ways of counting such as combinations - the focus of this research effort. Combinations refer to a special way of arranging objects when order is not considered. Combinations also belong to the class of fundamental combinatorial objects, which is no surprise why we already have many algorithms which generate combinations. However, these algorithms generate combinations directly, meaning they are bound to have only one way of arranging their tuples. In contrast, this research effort offers a new way of generating combinations, an indirect way. The indirect way offers a means by which the generator can define the order of tuples. This new way depends on two combinatorial objects: a parent combinatorial method, Ml (an original non-recursive constant amortized time algorithm for generating permutations with repetitions allowed), and an indexing combinatorial method (Algorithm .f) which generates a pattern that can be translated to indices corresponding to the location of combinations in M 1.


In Copyright. URI: This Item is protected by copyright and/or related rights. You are free to use this Item in any way that is permitted by the copyright and related rights legislation that applies to your use. For other uses you need to obtain permission from the rights-holder(s).