For what it's worth, here is a mild revision of my restr.perm()
function, which seems NOT to fall over.  I.e. it appears to
``reliably'' generate restricted permutations.

Whether these are genuinely ***random*** restricted permutations
(i.e. does each restricted permutation of 1:12 have the same
probability of being generated?) is not clear to me.  So ***DON'T
TRUST IT***!!!

===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===
restr.perm <- function ()
{
S <- 4:12
G <- NULL
A <- list(1:3,4:6,7:9,10:12)
for(k in 1:4) {
        for(i in A[[k]]) {
                tmp <- union(i,S)
                tmp <- setdiff(tmp,G)
                if(length(tmp)==0) return(Recall())
                x <- if(length(tmp)==1) tmp else sample(tmp,1)
                G <- c(G,x)
                S <- setdiff(S,G)
        }
        S <- union(S,A[[k]])
        R <- if(k < 4) A[[k+1]] else NULL
        R <- union(R,G)
        S <- setdiff(S,R)
}
G
}
===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===

                                cheers,

                                        Rolf Turner
                                        [EMAIL PROTECTED]

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to