# iterpc: Efficient Iterator for Permutations and Combinations In randy3k/iterpc: Efficient Iterator for Permutations and Combinations

## Description

Efficient Iterator for Permutations and Combinations

Initialize a iterator for permutations or combinations

## Usage

 ```1 2``` ```iterpc(n, r = NULL, labels = NULL, ordered = FALSE, replace = FALSE) ```

## Arguments

 `n` the length of the input sequence or a vector of frequencies for a multiset. `r` the length of the output sequence. If missing, equals to `sum(n)`. `labels` if `missing`, natural numbers are used unless `n` is a table object. In that case, the names of `n` are used. `ordered` `TRUE` corresponds to permutation and `FALSE` corresponds to combinations. `replace` with/without replacement. Default is `FALSE`.

## Value

a permutation/combination iterator

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22``` ```#1) all combinations of drawing 2 items from {1, 2, 3} I <- iterpc(5, 2) getall(I) #2) continuing 1), get combination by combination I <- iterpc(5, 2) getnext(I) # return 1,2 getnext(I) # return 1,3 getnext(I, 2) # return next 2 results #3) 3) all permutations of {1, 2, 3} and use of labels I <- iterpc(3, labels=c("a", "b", "c"), ordered=TRUE) getall(I) #4) permutations of multiset and I <- iterpc(c(2, 1, 1), labels=c("a", "b", "c"), ordered=TRUE) getall(I) #5) combinations with replacement and the use of table as input x <- c("a","a","b","c") I <- iterpc(table(x), 3, replace=TRUE) getall(I) ```

randy3k/iterpc documentation built on Jan. 9, 2020, 2:02 a.m.