Я потратил больше суток, пытаясь выполнить то, что кажется очень простым делом. Мне нужно создать 300 «случайных» последовательностей, в которых числа 1, 2, 3 и 4 появляются ровно 12 раз, но одно и то же число никогда не используется дважды «подряд» / последовательно.
Мои лучшие попытки (наверное) были:
R выборки 48 элементов без замены, проверьте, есть ли последовательные значения с rle, затем используйте только последовательности, которые не содержат последовательных значений. Проблема: почти нет случайных последовательностей, которые соответствуют этому критерию, поэтому это занимает вечность.
пусть R создает последовательности без последовательных значений (см. код).
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)]
}
Проблема: это создает последовательности с различными числами каждого значения. Затем я попытался использовать только те последовательности, каждая из которых содержит ровно 12 значений, но это только вернуло меня к проблеме 1: занимает навсегда.
Должен быть какой-то простой способ сделать это, верно? Любая помощь очень ценится!