Example #1
0
def f(m, n):
    num_ways = 1
    for b in range(1, (n + 1) // (m + 1) + 1):
        lim = n - b + 1
        for c in combinations_with_limit(b, m, lim):
            p = n - sum(c) + 1
            num_ways += bicoeff(p, b) * count_permutations(c)
    return num_ways
Example #2
0
def f(m, n):
    num_ways = 1
    for b in range(1, (n + 1) // (m + 1) + 1):
        lim = n - b + 1
        for c in combinations_with_limit(b, m, lim):
            p = n - sum(c) + 1
            num_ways += bicoeff(p, b) * count_permutations(c)
    return num_ways
Example #3
0
def e117():
    units = 50
    num_ways = 0
    for r in range(units // 2 + 1):
        for g in range((units - 2 * r) // 3 + 1):
            for b in range((units - 2 * r - 3 * g) // 4 + 1):
                p = units - 2 * r - 3 * g - 4 * b + r + g + b
                blocks = r + g + b
                c1 = bicoeff(p, blocks)
                c2 = multinomial_coefficient(blocks, (r, g, b))
                num_ways += c1 * c2
    return num_ways
Example #4
0
def e117():
    units = 50
    num_ways = 0
    for r in range(units // 2 + 1):
        for g in range((units - 2 * r) // 3 + 1):
            for b in range((units - 2 * r - 3 * g) // 4 + 1):
                p = units - 2 * r - 3 * g - 4 * b + r + g + b
                blocks = r + g + b
                c1 = bicoeff(p, blocks)
                c2 = multinomial_coefficient(blocks, (r, g, b))
                num_ways += c1 * c2
    return num_ways
Example #5
0
def f(m, n):
    num_ways = 0
    for b in range(1, m // n + 1):
        num_ways += bicoeff(m - b * (n - 1), b)
    return num_ways
Example #6
0
def f(m, n):
    num_ways = 0
    for b in range(1, m // n + 1):
        num_ways += bicoeff(m - b * (n - 1), b)
    return num_ways