Tôi đã dành hơn một ngày cố gắng để hoàn thành những gì dường như là một điều rất đơn giản. Tôi phải tạo ra 300 chuỗi 'ngẫu nhiên' trong đó các số 1,2,3 và 4 đều xuất hiện chính xác 12 lần, nhưng cùng một số không bao giờ được sử dụng hai lần 'liên tiếp' / liên tiếp.
Những nỗ lực tốt nhất của tôi (tôi đoán) là:
có R mẫu 48 mục mà không thay thế, kiểm tra xem có giá trị liên tiếp với rle không, sau đó chỉ sử dụng các chuỗi không chứa giá trị liên tiếp. Vấn đề: hầu như không có chuỗi ngẫu nhiên nào đáp ứng tiêu chí này, vì vậy phải mất mãi mãi.
có R tạo các chuỗi không có giá trị liên tiếp (xem mã).
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)]
}
Vấn đề: điều này tạo ra các chuỗi với số lượng khác nhau của từng giá trị. Sau đó, tôi đã cố gắng chỉ sử dụng các chuỗi đó với chính xác 12 của mỗi giá trị, nhưng điều đó chỉ đưa tôi trở lại vấn đề 1: mất mãi mãi.
Phải có một số cách dễ dàng để làm điều này, phải không? Bất kỳ trợ giúp nào cũng được đánh giá rất cao!