def nth_permutation(n, list_):
    permutation = list()
    num_permutations = Basic.factorial(len(list_))
    n %= num_permutations
    while n > 0:
        permutations_per_index = num_permutations // len(list_)
        index = n // permutations_per_index
        n %= permutations_per_index
        num_permutations = permutations_per_index
        permutation.append(list_.pop(index))
    permutation += list_
    return permutation
Beispiel #2
0
def n_choose_k(n, k):
    n_fact = Basic.factorial(n)
    nk_fact = Basic.factorial(n - k)
    k_fact = Basic.factorial(k)
    return n_fact // (k_fact * nk_fact)
Beispiel #3
0
def solve020(num):
    factorial = Basic.factorial(num)
    return General.sum_of_digits(factorial)