Ho trascorso più di una giornata cercando di realizzare quella che sembra essere una cosa molto semplice. Devo creare 300 sequenze "casuali" in cui i numeri 1,2,3 e 4 compaiono tutti esattamente 12 volte, ma lo stesso numero non viene mai usato due volte "di seguito" / consecutivamente.
I miei migliori tentativi (immagino) sono stati:
avere R campioni 48 elementi senza sostituzione, verificare se ci sono valori consecutivi con rle, quindi utilizzare solo le sequenze che non contengono valori consecutivi. Problema: non ci sono quasi sequenze casuali che soddisfano questo criterio, quindi ci vuole un'eternità.
fare in modo che R crei sequenze senza valori consecutivi (vedi codice).
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: questo crea sequenze con numeri variabili di ciascun valore. Ho quindi provato a usare solo quelle sequenze con esattamente 12 di ogni valore, ma questo mi ha riportato al problema 1: richiede un'eternità.
Deve esserci un modo semplice per farlo, giusto? Qualsiasi aiuto è molto apprezzato!