Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import re
- import math
- class SolveTask:
- def __init__(self):
- self._f = math.factorial
- def solve(*args, **kwargs):
- raise NotImplementedError
- def combinations(self, n, k):
- return self._f(n) // self._f(k) // self._f(n - k)
- def _parse_expression(self, expression):
- n = expression.split('^')[1]
- brakets = re.split('[()]', expression)
- values = list(map(lambda x: x.strip(), brakets[1].split('+')))
- values = [int(a) if '0' <= a <= '9' else a for a in values]
- return *values, int(n)
- class Solve9a(SolveTask):
- def solve(self, n:int, m:int) -> int:
- return sum([(-1)**(m+i) * self.combinations(m, i) * i ** n for i in range(0, m+1)]) // self._f(m)
- class Solve9b(SolveTask):
- def solve(self, n:int, m:int) -> int:
- return sum([(-1)**(m+i) * self.combinations(m, i) * i ** n for i in range(0, m+1)])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement