Advertisement
loalkota

Untitled

Jun 2nd, 2021
874
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.92 KB | None | 0 0
  1. import re
  2. import math
  3.  
  4.  
  5. class SolveTask:
  6.     def __init__(self):
  7.         self._f = math.factorial
  8.  
  9.     def solve(*args, **kwargs):
  10.         raise NotImplementedError
  11.  
  12.     def combinations(self, n, k):
  13.         return self._f(n) // self._f(k) // self._f(n - k)
  14.  
  15.     def _parse_expression(self, expression):
  16.         n = expression.split('^')[1]
  17.        
  18.         brakets = re.split('[()]', expression)
  19.        
  20.         values = list(map(lambda x: x.strip(), brakets[1].split('+')))
  21.         values = [int(a) if '0' <= a <= '9' else a for a in values]
  22.  
  23.         return *values, int(n)
  24.  
  25. class Solve9a(SolveTask):
  26.     def solve(self, n:int, m:int) -> int:
  27.         return sum([(-1)**(m+i) * self.combinations(m, i) * i ** n for i in range(0, m+1)]) // self._f(m)
  28.  
  29.  
  30. class Solve9b(SolveTask):
  31.     def solve(self, n:int, m:int) -> int:
  32.         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