[R] Find cyclically identical binary sequences (corrected)

Michael Kubovy kubovy at virginia.edu
Tue May 5 15:37:15 CEST 2009


Dear R-helpers,

I need to generate all the binary sequences of length n (here n = 8)
that start with 1 and have no fewer than two of each digit, and are
not cyclic permutations of each other. Here is what I have done:

len <- 8
df <- as.data.frame(numeric(2^(len - 1)) %o% numeric(len))
require(wle)
for (i in 1:2^(len - 1)) df[i, ] <- binary(i, dim = len)[[1]]
df <- df[which(df[, 1] == 1), ]
df <- df[which(rowSums(df) > 1), ]
df <- df[which(rowSums(df) < len - 1), ]

The following are cyclic permutations of each other:
df[which(rowSums(df) == 3), ][c(2, 15), ]

I would like to retain the larger of the two (if considered a binary
number).

Can someone suggest an algorithm?

Thanks,
Michael

_____________________________
Professor Michael Kubovy
University of Virginia
Department of Psychology
USPS:     P.O.Box 400400    Charlottesville, VA 22904-4400
Parcels:    Room 102        Gilmer Hall
        McCormick Road    Charlottesville, VA 22903
Office:    B011    +1-434-982-4729
Lab:        B019    +1-434-982-4751
Fax:        +1-434-982-4766
WWW:    http://www.people.virginia.edu/~mk9y/




More information about the R-help mailing list