Better naming and mypy adoption
This commit is contained in:
parent
115c9c31ff
commit
ad0cd08228
@ -43,33 +43,38 @@ def compute():
|
|||||||
heptagonal, and octagonal, is represented by a different number in the set.
|
heptagonal, and octagonal, is represented by a different number in the set.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def F(k, n):
|
def get_numbers(order: int, number: int) -> int:
|
||||||
return (n * (n - 1) * (k - 2) // 2) + n
|
return (number * (number - 1) * (order - 2) // 2) + number
|
||||||
|
|
||||||
P = {k: set(str(F(k, n)) for n in range(150)) for k in range(3, 9)}
|
poligonals: dict[int, set[int]] = {
|
||||||
|
o: set(str(get_numbers(o, n)) for n in range(150)) for o in range(3, 9)
|
||||||
|
}
|
||||||
|
|
||||||
four_digits_numbers = {str(n) for n in range(10**3, 10**4)}
|
four_digits_numbers: set[str] = {str(n) for n in range(10**3, 10**4)}
|
||||||
|
|
||||||
dic = {k: list(v & four_digits_numbers) for k, v in P.items()}
|
eligibles: dict[int, list[str]] = {
|
||||||
|
k: list(v & four_digits_numbers) for k, v in poligonals.items()
|
||||||
|
}
|
||||||
|
|
||||||
perms = permutations(dic.keys(), 6)
|
perms = permutations(eligibles.keys(), 6)
|
||||||
for perm in perms:
|
for perm in perms:
|
||||||
for a in dic.get(perm[0]):
|
for a in eligibles.get(perm[0]):
|
||||||
lst = []
|
ans = []
|
||||||
a1, a2 = a[:2], a[2:]
|
a1, a2 = a[:2], a[2:]
|
||||||
for b in filter(lambda n: n[:2] == a2, dic.get(perm[1])):
|
for b in filter(lambda n: n[:2] == a2, eligibles.get(perm[1])):
|
||||||
b2 = b[2:]
|
b2 = b[2:]
|
||||||
for c in filter(lambda n: n[:2] == b2, dic.get(perm[2])):
|
for c in filter(lambda n: n[:2] == b2, eligibles.get(perm[2])):
|
||||||
c2 = c[2:]
|
c2 = c[2:]
|
||||||
for d in filter(lambda n: n[:2] == c2, dic.get(perm[3])):
|
for d in filter(lambda n: n[:2] == c2, eligibles.get(perm[3])):
|
||||||
d2 = d[2:]
|
d2 = d[2:]
|
||||||
for e in filter(lambda n: n[:2] == d2, dic.get(perm[4])):
|
for e in filter(lambda n: n[:2] == d2, eligibles.get(perm[4])):
|
||||||
e2 = e[2:]
|
e2 = e[2:]
|
||||||
for f in filter(
|
for f in filter(
|
||||||
lambda n: n[:2] == e2 and n[2:] == a1, dic.get(perm[5])
|
lambda n: n[:2] == e2 and n[2:] == a1,
|
||||||
|
eligibles.get(perm[5]),
|
||||||
):
|
):
|
||||||
lst.append([a, b, c, d, e, f])
|
ans.append([a, b, c, d, e, f])
|
||||||
return sum(map(int, lst[0]))
|
return sum(map(int, ans[0]))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
Loading…
x
Reference in New Issue
Block a user