-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProblem_24.py
More file actions
35 lines (27 loc) · 858 Bytes
/
Problem_24.py
File metadata and controls
35 lines (27 loc) · 858 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from Problem_20 import factorial
def permutations(itens_list, repetition=False):
number_itens = len(list(set(itens_list))) if not(repetition) else len(itens_list)
return factorial(number_itens)
DIGITS = [i for i in range(10)]
def element_of_lexico_permutation(position, digits):
number = []
# order digits
order_digits = digits[:]
order_digits.sort()
n_permutations = 0
while len(number)<len(digits):
i = 0
while n_permutations+permutations(order_digits[:-1])<=position:
n_permutations += permutations(order_digits[:-1])
i += 1
number.append(order_digits.pop(i))
return number
def main():
print(int(''.join([str(i) for i in element_of_lexico_permutation(1000000-1, DIGITS)])))
if __name__ == "__main__":
main()
"""
0 1 2 3 4
4 elemento:
0 - 4! p = 24
"""