【问题标题】:combinations with ajacent numbers与相邻数字的组合
【发布时间】:2017-03-21 14:35:44
【问题描述】:

考虑一个长度为 k 的二进制字符串,它正好有 m 个零(因此,剩余的 k-m 个元素是“1”)。从元素 0 到元素 1 恰好有 j 个跃迁的此类字符串的总数是多少? (j 可以是 1 到 2m 之间的任何数字)。 例如,如果 k=5、m=2 和 j=1,那么只有两个这样的字符串:11100 和 00111。 当 k=5、m=2 和 j=3 时,则有四个这样的字符串:10110、01011、11010 和 01101。 当 k=5、m=2 和 j=4 时,只有一个这样的字符串:10101。

【问题讨论】:

    标签: binary combinations combinatorics


    【解决方案1】:

    这是一种方法。

    #Example 1
    k <- 5
    m <- 2
    j <- 1
    
    y <- expand.grid(rep(list(0L:1L), k))
    zeros <- apply(y,1,function(x) sum(x == 0))
    chg <- apply(y,1,function(x) sum(diff(sign(x)) != 0))
    
    y[zeros==m&chg==j,]
       Var1 Var2 Var3 Var4 Var5
    8     1    1    1    0    0
    29    0    0    1    1    1
    
    #Example 2
    k <- 5
    m <- 2
    j <- 3
    
    y <- expand.grid(rep(list(0L:1L), k))
    zeros <- apply(y,1,function(x) sum(x == 0))
    chg <- apply(y,1,function(x) sum(diff(sign(x)) != 0))
    
    y[zeros==m&chg==j,]
       Var1 Var2 Var3 Var4 Var5
    12    1    1    0    1    0
    14    1    0    1    1    0
    23    0    1    1    0    1
    27    0    1    0    1    1
    
    #Example 3
    k <- 5
    m <- 2
    j <- 4
    
    y <- expand.grid(rep(list(0L:1L), k))
    zeros <- apply(y,1,function(x) sum(x == 0))
    chg <- apply(y,1,function(x) sum(diff(sign(x)) != 0))
    
    y[zeros==m&chg==j,]
       Var1 Var2 Var3 Var4 Var5
    22    1    0    1    0    1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-05
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      • 2020-12-15
      • 2023-04-09
      相关资源
      最近更新 更多