J'ai passé plus d'une journée à essayer d'accomplir ce qui semble être une chose très simple. Je dois créer 300 séquences «aléatoires» dans lesquelles les nombres 1, 2, 3 et 4 apparaissent tous exactement 12 fois, mais le même nombre n'est jamais utilisé deux fois de suite / consécutivement.
Mes meilleures tentatives (je suppose) ont été:
avoir R échantillon 48 éléments sans remplacement, tester s'il existe des valeurs consécutives avec rle, puis utiliser uniquement les séquences qui ne contiennent pas de valeurs consécutives. Problème: il n'y a presque pas de séquences aléatoires qui répondent à ce critère, donc cela prend une éternité.
avoir R créer des séquences sans valeurs consécutives (voir code).
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)]
}
Problème: cela crée des séquences avec des nombres variables de chaque valeur. J'ai ensuite essayé d'utiliser uniquement ces séquences avec exactement 12 de chaque valeur, mais cela ne m'a ramené qu'au problème 1: prend une éternité.
Il doit y avoir un moyen facile de le faire, non? Toute aide est grandement appréciée!