Все десять цифр разбили на пары и в каждой вычисли...
Tạo vào: 5 tháng 11, 2025
Trả lời bằng GPT-5 Thinking bởi Chat01
Tạo vào: 5 tháng 11, 2025
Trả lời bằng GPT-5 Thinking bởi Chat01
Все десять цифр разбили на пары и в каждой вычислили разность (вычитая из большей цифры меньшую). Какой наибольшей степени двойки может равняться произведение всех этихразностей?
pythonimport itertools, functools digits = list(range(10)) # Precompute allowed edges and weights (v2 of difference) def v2(n): if n==0: return 0 c=0 while n%2==0: n//=2 c+=1 return c allowed = {} edges = [] for i in range(10): for j in range(i+1,10): d = j-i if d in (1,2,4,8): allowed[(i,j)] = v2(d) edges.append((i,j,v2(d))) len(edges), edges[:10] (25, [(0, 1, 0), (0, 2, 1), (0, 4, 2), (0, 8, 3), (1, 2, 0), (1, 3, 1), (1, 5, 2), (1, 9, 3), (2, 3, 0), (2, 4, 1)])
pythonfrom functools import lru_cache edges_dict = {} for (i,j),w in allowed.items(): edges_dict.setdefault(i, []).append((j,w)) edges_dict.setdefault(j, []).append((i,w)) @lru_cache(None) def best(mask): # mask for used digits if mask == (1<<10)-1: return 0, () # find first unused for i in range(10): if not (mask>>i)&1: first = i break best_val=-1 best_pairing=None for (j,w) in edges_dict.get(first, []): if not (mask>>j)&1: val, pairing = best(mask | (1<<first)|(1<<j)) if val!=-1 and val + w > best_val: best_val = val + w best_pairing = ((first,j,w),) + pairing return best_val, best_pairing best_val, pairing = best(0) best_val, pairing (10, ((0, 8, 3), (1, 9, 3), (2, 6, 2), (3, 7, 2), (4, 5, 0)))
Ответ: (то есть показатель степени — ).
Короткое обоснование:
Итого показатель , и это достигается: