He pasado más de un día tratando de lograr lo que parece ser algo muy simple. Tengo que crear 300 secuencias 'aleatorias' en las que los números 1,2,3 y 4 aparecen exactamente 12 veces, pero el mismo número nunca se usa dos veces 'en una fila' / consecutivamente.
Mis mejores intentos (supongo) fueron:
haga que R muestre 48 elementos sin reemplazo, pruebe si hay valores consecutivos con rle, luego use solo las secuencias que no contienen valores consecutivos. Problema: casi no hay secuencias aleatorias que cumplan este criterio, por lo que lleva una eternidad.
haga que R cree secuencias sin valores consecutivos (vea el código).
pop<-rep(1:4,12)
y=c()
while(length(y)!=48)
{
y= c(y,sample(pop,48-length(y),replace=F))
y=y[!c(FALSE, diff(y) == 0)]
}
Problema: esto crea secuencias con números variables de cada valor. Luego intenté usar solo esas secuencias con exactamente 12 de cada valor, pero eso solo me trajo de vuelta al problema 1: toma una eternidad.
Debe haber alguna manera fácil de hacer esto, ¿verdad? ¡Cualquier ayuda es muy apreciada!