R 随机数生成-约束序列

R 随机数生成-约束序列,r,R,我试图生成一组480个1-9之间的随机整数。但是,存在一些限制: 序列不能在一行中包含两个重复的数字 该序列必须在每80位数字序列(例如6 4 52483 4 69154 61)中恰好包含4个奇数序列和4个偶数序列(以任何顺序) 我已经能够使用以下方法生成一组允许重复数字的随机数: NumRep <- sample(1:9, 480, replace=T) NumRep首先,问题失去了在该条件下进行模拟的“随机”方式。无论如何,此代码与第一个约束相对应: # Build a v

我试图生成一组480个1-9之间的随机整数。但是,存在一些限制:

  • 序列不能在一行中包含两个重复的数字
  • 该序列必须在每80位数字序列(例如6 4 52483 4 69154 61)中恰好包含4个奇数序列和4个偶数序列(以任何顺序)
我已经能够使用以下方法生成一组允许重复数字的随机数:

NumRep <- sample(1:9, 480, replace=T)

NumRep首先,问题失去了在该条件下进行模拟的“随机”方式。无论如何,此代码与第一个约束相对应:

   # Build a vector 
     C<-vector()
   # Length of the vector
     n<-480
   # The first element
    C<-sample(1:9,1)
   # Complete the rest
    for (i in 2:n){
    # Take a random number not equal to the previous one
      C[i] <- sample(c(1:9)[1:9!=C[i-1]],1)
    }

    # It is an odd number?
      C %% 2 == 0
    # How many consecutive odd numbers are in the sequence?
      # Build a table with this information
        TAB <- rle( C %% 2 == 0)
        # Maximum of consecutive odd numbers
          max(TAB$lengths[TAB$values==T])
        # Maximum of consecutive even numbers
          max(TAB$lengths[TAB$values==F])
#构建一个向量

欢迎来到这里!发布问题时,请分享您的代码,并尽可能地解释您的问题。现在,你的要求还不清楚。谢谢你的回答,很抱歉我的回答不够清晰。关于你的第二点,你是说在480个数字的序列中,你必须能找到一行四个奇数(以偶数为界)和四个偶数(以赔率为界)?奇偶约束是,在每一个80位的序列中,我需要精确地表示4个3奇数序列和4个3偶数序列(例如6 4 5 2 4 8 3 6 9 1 5 6 1)。如果这有助于澄清问题,那么这是一个观察持续注意力的实验——每次显示一个数字,当参与者看到一行3个奇数或3个偶数时,他们必须按下按钮。所以我猜你永远不会希望一行中出现超过3个偶数/赔率的情况。按照顺序,你是指3个连续的奇数吗(偶数)数字?因为如果你想这样做,策略可能是首先构建这些序列,然后在其他不遵循此属性的数字之前和之后添加。