public static class Combinatorics.RegularPermutationIterator
extends java.lang.Object
implements java.util.Iterator<int[]>
k == n
.
Iterátor produkuje pro vyšší efektivitu pole int[]
. Pokud je
potřeba permutovat, resp. variovat, objekty, prvky je třeba vložit do
číselně indexovaného pole (např. Element[]
) nebo kolekce
(List<Element>
) a generované hodnoty použít jako
indexy do tohoto pole:
Element[] elements = {new Element(1), new Element(2), new Element(3)};
for (RegularPermutationIterator it = new RegularPermutationIterator(elements.length); it.hasNext(); ) {
for (int i : it.next()) {
System.out.println(elements[i]);
}
System.out.println("------------");
}
Constructor and Description |
---|
RegularPermutationIterator(int n)
Vytvoří iterátor všech permutací (P(n) = n!
|
RegularPermutationIterator(int k,
int n)
Vytvoří iterátor všech variací (V(k, n) = n!
|
Modifier and Type | Method and Description |
---|---|
boolean |
hasNext() |
int[] |
next() |
public RegularPermutationIterator(int n)
int[]
o n
prvcích.
Pro n = 3
je generována následující posloupnost:
[0, 1, 2]
[0, 2, 1]
[1, 0, 2]
[1, 2, 0]
[2, 0, 1]
[2, 1, 0]
n
- počet prvků (n-tice)java.lang.IllegalArgumentException
- pokud je n < 1
public RegularPermutationIterator(int k, int n)
int[]
o k
prvcích.
Pro k = 2, n = 3
je generována následující posloupnost:
[0, 1]
[0, 2]
[1, 0]
[1, 2]
[2, 0]
[2, 1]
k
- počet prvků k-tice vybírané z n-ticen
- počet prvků (n-tice)java.lang.IllegalArgumentException
- pokud není
1 <= k <= n