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
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)
def solve020(num): factorial = Basic.factorial(num) return General.sum_of_digits(factorial)