This package exports three classes to generate lazily combinations,
and arrangements with and without repeatition (permutations).
See also: <http://fr.wikipedia.org/wiki/Combinatoire>
License:
AGPL3
Copyright Pascal J. Bourguignon 2003 - 2012
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program.
If not, see <http://www.gnu.org/licenses/>
|
(arrangement k n) |
function |
RETURN: The number of arrangement of k elements (without repeat) taken amongst n.
|
arrangement-sans-repeat |
class |
We choose k objects in order without repeating the same object, amongst n objects.
Class precedence list: ARRANGEMENT-SANS-REPEAT SET-FUNCTOR STANDARD-OBJECT T
|
arrangement-with-repeat |
class |
We choose k objects in order possibly repeating the same object, amongst n objects.
Class precedence list: ARRANGEMENT-WITH-REPEAT SET-FUNCTOR STANDARD-OBJECT T
|
(at-beginning-p self) |
generic-function |
RETURN: whether the reset() method has been called and
getNextElement() (or getCurrentElement()) has not
already been called.
|
(base-cardinal functor) |
generic-function |
RETURN: The cardinal n of the base set.
|
(cardinal self) |
generic-function |
PRE: !atBegining().. RETURN: the number of elements enumerated by this object.
|
combination |
class |
We choose k distinct objects, without taking into account the order, amongst n objects.
Class precedence list: COMBINATION SET-FUNCTOR STANDARD-OBJECT T
|
(combination k n) |
function |
RETURN: The number of combinations of k elements taken amongst n.
|
(combinations list n) |
function |
RETURN: a list of all the combinations of N elements from the LIST.
|
(done-p self) |
generic-function |
RETURN: !atBegining()
&& ((cardinal()=0) || (index()=cardinal())).
|
(element-size self) |
generic-function |
RETURN: the size of each element returned by getCurrentElement
and getNextElement in the choice arrays.
|
(get-current-element self) |
generic-function |
PRE: cardinal()>0.
POST: !atBegining(),
RETURN: A vector of cardinal: choice.
DO: Sets the choice array to the current enumerated
element. (ie. the last element retrived with the
getNextElement method). The choice array must contain
at least elementSize() integers.
|
(get-next-element self) |
generic-function |
PRE: cardinal()>0, !done-p(), atBegining()=b,
(!b => index()=a).
POST: !atBegining(), (!b => index()=a+1),
RETURN: A vector of cardinal: choice; done-p.
DO: Computes the next element to be enumerated and sets the
choice array to it. It returns TRUE when the last
element is retrived, ie. all elements have been
enumerated. The choice array must contain at least
elementSize() integers.
|
(index self) |
generic-function |
PRE: !atBegining()..
RETURN: the index of the current element enumerated by
this object.
|
(reset self) |
generic-function |
POST: atBegining(). DO: resets the enumeration.