Te4nick

kispython

Apr 21st, 2023
792
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.83 KB | None | 0 0
  1. from math import floor
  2.  
  3.  
  4. def main2(z: int) -> float:
  5.     if z < 126:
  6.         return pow(floor(78 * z), 6)
  7.     elif 126 <= z < 215:
  8.         return pow(z - 81, 7) - pow(z / 30.0 + z ** 3 + 1, 2)
  9.     elif z >= 215:
  10.         return z ** 4 / 90 - 30 * z ** 7
  11.  
  12.  
  13. def main3(m: int, a: int, z: float, b: int, y: float) -> float:
  14.     mult = 1
  15.     for j in range(1, a + 1):
  16.         summ = 0
  17.         for k in range(1, m + 1):
  18.             summ += k ** 2 + j ** 3 - 50 * z * z
  19.         mult *= summ
  20.     summ = 0
  21.     for j in range(1, b + 1):
  22.         summ += 47 * (y ** 2 - y ** 3) ** 3 + 25 * j ** 5
  23.     return mult + summ
  24.  
  25.  
  26. from math import atan
  27.  
  28.  
  29. def main4(n: int) -> float:
  30.     if n == 0:
  31.         return -0.23
  32.     elif n >= 1:
  33.         return 22 * atan(main4(n - 1)) ** 2 + main4(n - 1)
  34.  
  35.  
  36. from math import ceil
  37.  
  38.  
  39. def main5(x: list, y: list) -> float:
  40.     summ = 0
  41.     x_n = x.copy()
  42.     x_n.insert(0, 0)
  43.     y_n = y.copy()
  44.     y_n.insert(0, 0)
  45.     n = len(x)
  46.     for i in range(1, n+1):
  47.         summ += 61*(23*x_n[n + 1 - ceil(i/4)] - (y_n[n+1 - ceil(i/2)])**2/5)**3
  48.     return summ
  49.  
  50.  
  51. def main6(x: list) -> int:
  52.     if x[0] == 'ATS':
  53.         return 11
  54.     if x[2] == 'RED':
  55.         return case_red(x)
  56.     elif x[2] == 'WISP':
  57.         return case_wisp(x)
  58.     elif x[2] == 'P4':
  59.         return case_p4(x)
  60.  
  61.  
  62. def case_red(x: list) -> int:
  63.     if x[4] == 'MTML':
  64.         return 0 if x[3] == 'ZIMPL' else 1
  65.     elif x[4] == 'XTEND':
  66.         return 2 if x[1] == 'TEX' else 3
  67.  
  68.  
  69. def case_wisp(x: list) -> int:
  70.     if x[2] == 'WISP' and x[4] == 'MTML':
  71.         return 4 if x[1] == 'TEX' else 5
  72.     elif x[2] == 'WISP' and x[4] == 'XTEND':
  73.         return 6 if x[1] == 'TEX' else 7
  74.  
  75.  
  76. def case_p4(x: list) -> int:
  77.     if x[3] == 'ZIMPL':
  78.         return 8 if x[1] == 'TEX' else 9
  79.     elif x[3] == 'SAS':
  80.         return 10
  81.  
  82.  
  83. def main7(data: dict) -> str:
  84.     cp = {k: bin(int(v, 16))[2::] for k, v in data.items()}
  85.     print(cp)
  86.     r = '0'*(5-len(cp.get('E1'))) + cp.get('E1')
  87.     r = '0' * (5-len(cp.get('E2'))) + cp.get('E2') + r
  88.     if len(cp.get('E3')) <= 6:
  89.         r = '0' * (6-len(cp.get('E3'))) + cp.get('E3') + r
  90.     else:
  91.         r = cp.get('E3')[-6:] + r
  92.     if len(cp.get('E3')) <= 4:
  93.         r = '0' * (4-len(cp.get('E3'))) + cp.get('E3') + r
  94.     else:
  95.         r = cp.get('E3')[-4:] + r
  96.     if len(cp.get('E4')) <= 9:
  97.         r = '0' * (9-len(cp.get('E4'))) + cp.get('E4') + r
  98.     else:
  99.         r = cp.get('E4')[-9:] + r
  100.     if len(cp.get('E5')) <= 3:
  101.         r = '0' * (3-len(cp.get('E5'))) + cp.get('E5') + r
  102.     else:
  103.         r = cp.get('E5')[-3:] + r
  104.     print(r)
  105.     res = 0
  106.     for i in range(0, len(r), 4):
  107.         chunk = '0b' + r[-4:]
  108.         res += int(chunk, 2) * 10**i
  109.         r = r[:-4]
  110.         print(r)
  111.  
  112.     print(res)
  113.     return str(int(r, 2))
  114.  
  115.  
  116. import re
  117.  
  118.  
  119. def main8(s: str):
  120.     result = {}
  121.     no_outer_dels_and_spaces = re.sub(r"[|\[\] ]|decl|\n", '', s)  # Delete |, [, ], decl, spaces, \n
  122.     elems = re.split(';', no_outer_dels_and_spaces)  # Split to entries
  123.     elems.pop(-1)  # Delete last empty entry
  124.     str_val_key = [el.split('>') for el in elems]  # Split to ['value', 'key'] pairs
  125.     str_val_key = [[k, v.split('#')] for v, k in str_val_key]  # Made ['key', 'value']
  126.     for entry in str_val_key:
  127.         entry[1].pop(0)
  128.         entry[1] = list(map(int, entry[1]))
  129.     res = {key: value for key, value in str_val_key}
  130.     return res
  131.  
  132.  
  133. def main9(data: list) -> list:
  134.     new_table = []
  135.     for block in data:
  136.         new_block = block[1].split('&')
  137.         new_block[0], new_block[1] = new_block[1], new_block[0]
  138.         new_block[0] = new_block[0].replace('[at]', '@')
  139.         new_block[1] = '0' if new_block[1] == 'N' else '1'
  140.         new_block.append(block[2].split()[0])
  141.         new_table.append(new_block)
  142.     for i in range(len(new_table)):
  143.         for j in range(len(new_table)):
  144.             if new_table[i][2] < new_table[j][2]:
  145.                 new_table[i], new_table[j] = new_table[j], new_table[i]
  146.     return new_table
  147.  
  148.  
  149. def main10():
  150.     return Mealy()
  151.  
  152.  
  153. class MealyError(Exception):
  154.     pass
  155.  
  156.  
  157. class Mealy:
  158.  
  159.     def __init__(self):
  160.         self.state = 'A'
  161.  
  162.     def check(self):
  163.         match self.state:
  164.             case 'A':
  165.                 self.state = 'B'
  166.                 return 0
  167.             case 'B':
  168.                 self.state = 'C'
  169.                 return 1
  170.             case 'C':
  171.                 self.state = 'D'
  172.                 return 2
  173.             case 'D':
  174.                 return 6
  175.             case 'E':
  176.                 self.state = 'F'
  177.                 return 7
  178.             case _:
  179.                 raise MealyError('check')
  180.  
  181.     def stall(self):
  182.         match self.state:
  183.             case 'C':
  184.                 self.state = 'E'
  185.                 return 4
  186.             case 'D':
  187.                 self.state = 'E'
  188.                 return 5
  189.             case 'F':
  190.                 self.state = 'C'
  191.                 return 8
  192.             case _:
  193.                 raise MealyError('stall')
  194.  
  195.     def cut(self):
  196.         if self.state == 'C':
  197.             return 3
  198.         else:
  199.             raise MealyError('cut')
  200.  
  201.  
  202. def test10():
  203.     o = main10()
  204.     cases = {'A': {'check': 0, 'stall': MealyError, 'cut': MealyError},
  205.              'B': {'check': 1, 'stall': MealyError, 'cut': MealyError},
  206.              'C': {'check': 2, 'stall': 4, 'cut': 3},
  207.              'D': {'check': 6, 'stall': 5, 'cut': MealyError},
  208.              'E': {'check': 7, 'stall': MealyError, 'cut': MealyError},
  209.              'F': {'check': MealyError, 'stall': 8, 'cut': MealyError}}
  210.     try:  # Testing A-state
  211.         o.cut()
  212.     except MealyError:
  213.         try:
  214.             o.stall()
  215.         except MealyError:
  216.             assert o.check() == 0
  217.     try:  # Testing B-state
  218.         o.cut()
  219.     except MealyError:
  220.         try:
  221.             o.stall()
  222.         except MealyError:
  223.             assert o.check() == 1
  224.     # Testing C-D-E-F-C path
  225.     assert o.cut() == 3
  226.     assert o.check() == 2
  227.     try:  # Testing D-state
  228.         o.cut()
  229.     except MealyError:
  230.         assert o.check() == 6
  231.         assert o.stall() == 5
  232.     try:  # Testing E-state
  233.         o.cut()
  234.     except MealyError:
  235.         try:
  236.             o.stall()
  237.         except MealyError:
  238.             assert o.check() == 7
  239.     try:  # Testing F-state
  240.         o.cut()
  241.     except MealyError:
  242.         try:
  243.             o.check()
  244.         except MealyError:
  245.             assert o.stall() == 8
  246.     assert o.stall() == 4  # Testing C-E path
  247.  
  248.  
  249.  
  250. def test3():
  251.     print('pass' if main3(5, 4, -0.63, 3, -0.12) == 4.16e+06 else f'error: {main3(5, 4, -0.63, 3, -0.12)}')
  252.     print('pass' if main3(8, 5, -0.66, 4, 0.06) == 4.85e+11 else f'error')
  253.     print('pass' if main3(7, 2, -0.55, 6, 0.82) == 3.09e+05 else f'error')
  254.     print('pass' if main3(4, 7, -0.86, 8, -0.64) == -4.79e+15 else f'error')
  255.     print('pass' if main3(3, 2, 0.49, 8, 0.93) == 1.54e+06 else f'error')
  256.  
  257.  
  258. def test6():
  259.     print(main6(['ATS', 'TEX', 'P4', 'SAS', 'MTML']))
  260.     print(main6(['HAXE', 'JFLEX', 'P4', 'SAS', 'XTEND']))
  261.     print(main6(['HAXE', 'TEX', 'RED', 'SAS', 'MTML']))
  262.     print(main6(['HAXE', 'JFLEX', 'P4', 'ZIMPL', 'XTEND']))
  263.     print(main6(['HAXE', 'JFLEX', 'WISP', 'ZIMPL', 'XTEND']))
  264.  
  265.  
  266. def test7():
  267.     res = main7({'E1': '0x1e', 'E2': '0x1b', 'E3': '0x2b', 'E4': '0x1e9', 'E5': '0x2'})
  268.     print(f'Test 1 {res}: result {1586540414}')
  269.     res = 'passed' if main7(
  270.         {'E1': '0x1c', 'E2': '0x11', 'E3': '0x338', 'E4': '0x39', 'E5': '0x5'}) == '2744967740' else 'failed'
  271.     print(f'Test 1 {res}')
  272.     res = 'passed' if main7(
  273.         {'E1': '0x7', 'E2': '0x13', 'E3': '0x2cb', 'E4': '0x184', 'E5': '0x2'}) == '1481322087' else 'failed'
  274.     print(f'Test 1 {res}')
  275.     res = 'passed' if main7(
  276.         {'E1': '0x18', 'E2': '0x3', 'E3': '0xa9', 'E4': '0x74', 'E5': '0x5'}) == '2806162552' else 'failed'
  277.     print(f'Test 1 {res}')
  278.  
  279.  
  280. def test8():
  281.     print(main8('| [ decl [ #-652 #-6198#-4479 #-4556 ]|>\nveoned; ] '
  282.                 '[ decl [ #5648 #-70 #-8183 ] |> edsoan_331; ][ decl [ #-2205 #-4761 ]|> zaedor;] |'))
  283.  
  284.  
  285. def test9():
  286.     data = [[None, 'N&sazetij33[at]mail.ru', 'Шазетий Борис', 'Шазетий Борис'],
  287.             [None, 'N&bimetev89[at]mail.ru', 'Биметев Павел', 'Биметев Павел'],
  288.             [None, 'N&sizutskij14[at]mail.ru', 'Сизутский Антон', 'Сизутский Антон']]
  289.     print(main9(data))
  290.     data = [[None, 'N&german91[at]mail.ru', 'Ладин Герман', 'Ладин Герман'],
  291.             [None, 'Y&felberg86[at]rambler.ru', 'Фелберг Назар', 'Фелберг Назар'],
  292.             [None, 'Y&stanislav94[at]yandex.ru', 'Сагов Станислав', 'Сагов Станислав']]
  293.     print(main9(data))
  294.  
  295.  
  296. if __name__ == '__main__':
  297.     print('Hello World!')
  298.     o = main10()
  299.     o.cut()
  300.     test10()
  301.  
Advertisement
Add Comment
Please, Sign In to add comment