Advertisement
Oppaceted

Untitled

Dec 9th, 2024
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.78 KB | None | 0 0
  1. def reverse_string(s):
  2.     return s[::-1]
  3. s = "hello"
  4. print(f"'{s}' перевёрнутая: '{reverse_string(s)}'")
  5. s = "12345"
  6. print(f"'{s}' перевёрнутая: '{reverse_string(s)}'")
  7. s = "Привет"
  8. print(f"'{s}' перевёрнутая: '{reverse_string(s)}'")
  9. def draw(n):
  10.     s = ""
  11.     for i in range(n//2+1):
  12.         s += (" "*(n//2-i)+"*"*(i*2+1))
  13.         s += "\n"
  14.     for i in range(n//2-1, -1, -1):
  15.         s += (" "*(n//2-i)+"*"*(i*2+1))
  16.         s += "\n"
  17.     return s
  18. n = 7
  19. print(f"Ромбик шириной в {n} звёздочек:\n{draw(n)}")
  20. def gcd(a, b):
  21.     max_possible = min(a, b)
  22.     for i in range(1, max_possible+1):
  23.         #print(i)
  24.         if (a%i==0) and (b%i==0):
  25.             nod = i
  26.     return nod
  27.  
  28. a = 48
  29. b = 18
  30. print(f"НОД {a} и {b} = {gcd(a, b)}")
  31. a = 100
  32. b = 25
  33. print(f"НОД {a} и {b} = {gcd(a, b)}")
  34. a = 17
  35. b = 13
  36. print(f"НОД {a} и {b} = {gcd(a, b)}")
  37. def convert_to_decimal(number_str, base):
  38.     if (base < 2) or (base > 36):
  39.         raise ValueError
  40.     try:
  41.         return int(number_str, base)
  42.     except:
  43.         raise ValueError
  44.  
  45. number_str, base = "1010", 2
  46. print(f"Число {number_str} в системе счисления с базой {base} в десятичной будет {convert_to_decimal(number_str, base)}")
  47. number_str, base = "1010", 2
  48. print(f"Число {number_str} в системе счисления с базой {base} в десятичной будет {convert_to_decimal(number_str, base)}")
  49. number_str, base = "1A", 16
  50. print(f"Число {number_str} в системе счисления с базой {base} в десятичной будет {convert_to_decimal(number_str, base)}")
  51. number_str, base = "123", 8
  52. print(f"Число {number_str} в системе счисления с базой {base} в десятичной будет {convert_to_decimal(number_str, base)}")
  53. number_str, base = "Z", 36
  54. print(f"Число {number_str} в системе счисления с базой {base} в десятичной будет {convert_to_decimal(number_str, base)}")
  55. def is_palindrome(s):
  56.     return s == s[::-1]
  57.  
  58. s = "мадам"
  59. print(f"Строка '{s}' - палиндром? Ответ: {is_palindrome(s)}")
  60. s = "топот"
  61. print(f"Строка '{s}' - палиндром? Ответ: {is_palindrome(s)}")
  62. s = "привет"
  63. print(f"Строка '{s}' - палиндром? Ответ: {is_palindrome(s)}")
  64. def count_greater_than_kth(arr, k):
  65.     sorted_array = sorted(arr)
  66.     elem_on_k = sorted_array[k-1]
  67.     result = 0
  68.     for i in arr:
  69.         if i > elem_on_k:
  70.             result += 1
  71.     return result
  72.  
  73. arr = [5, 3, 8, 6, 2]
  74. k = 3
  75. result = count_greater_than_kth(arr, k)
  76. print(f"Количество элементов в массиве {arr}, которые больше, чем элемент, находящийся на позиции {k}: {result}")
  77. arr = [5, 3, 8, 6, 2, 5, 5]
  78. k = 3
  79. result = count_greater_than_kth(arr, k)
  80. print(f"Количество элементов в массиве {arr}, которые больше, чем элемент, находящийся на позиции {k}: {result}")
  81. def count_unique_substrings(text, k):
  82.     length = len(text)
  83.     if length < k:
  84.         return 0
  85.     elif length == k:
  86.         return 1
  87.     substrings = set()
  88.     for i in range(length-k+1):
  89.         substrings.add(text[i:k+i:])
  90.     result = len(substrings)
  91.     return result
  92.  
  93. text = "abcabc"
  94. k = 3
  95. result = count_unique_substrings(text, k)
  96. print(f"Количество уникальных подстрок в строке {text}: {result}")
  97. def minimum(n):
  98.     dels = set()
  99.     for a in range(1, int(n**(1/3)) + 1):
  100.         if n%a == 0:
  101.             for b in range(1, int( (n//a)**(1/2)) + 1):
  102.                 if (n//a)%b == 0:
  103.                     c = (n//a)//b
  104.                     #сортируем чтобы не добавлять одни и те же наборы
  105.                     dels.add(tuple(sorted((a, b, c))))
  106.     a, b, c = n, n, n
  107.     for i, j, k in dels:
  108.         if (i + j + k) < (a + b + c):
  109.             a, b, c = i, j, k
  110.     return a, b, c
  111. n = 12
  112. a, b, c = minimum(n)
  113. print(f"Числа дающие минимальную сумму при объёме паралеллепипеда {n} это {a}, {b}, {c}")
  114. n = 27
  115. a, b, c = minimum(n)
  116. print(f"Числа дающие минимальную сумму при объёме паралеллепипеда {n} это {a}, {b}, {c}")
  117. n = 7
  118. a, b, c = minimum(n)
  119. print(f"Числа дающие минимальную сумму при объёме паралеллепипеда {n} это {a}, {b}, {c}")
  120. def determinant(matrix):
  121.     #создание алгебраического дополнения
  122.     def algebraic_addition(matrix, row, col):
  123.         new_matrix = list()
  124.         for i in range(len(matrix)):
  125.             if i == row:
  126.                 continue
  127.             else:
  128.                 new_matrix.append( matrix[i][:col:] + matrix[i][col+1:len(matrix[i]):] )
  129.         return new_matrix
  130.  
  131.     #проверка квадратности
  132.     for i in range(len(matrix)):
  133.         if len(matrix) != len(matrix[i]):
  134.             raise ValueError("Wrong matrix size!")
  135.     is_even = lambda n: (n%2*2 - 1)
  136.     if len(matrix) == 1:
  137.         return matrix[0][0]
  138.     result = 0
  139.     for j in range(len(matrix[0])):
  140.         result += is_even(j+1)*matrix[0][j]*determinant(algebraic_addition(matrix, 0, j))
  141.     return result
  142.  
  143.  
  144. matrix = [
  145.     [1, 2],
  146.     [3, 4]
  147. ]
  148. result = determinant(matrix)
  149. print(f"Определитель матрицы {matrix}: {result}")
  150.  
  151. matrix = [
  152.     [9, 2, 7],
  153.     [1, 2, 3],
  154.     [16, 15, 11]
  155. ]
  156. result = determinant(matrix)
  157. print(f"Определитель матрицы {matrix}: {result}")
  158. def is_valid_sequence(s):
  159.     parenthesis = {
  160.         ")":"(",
  161.         "}":"{",
  162.         "]":"[",
  163.     }
  164.     list_of_closed = list()
  165.     for symbol in s:
  166.         if symbol in parenthesis.values():
  167.             list_of_closed.append(symbol)
  168.             #print(list_of_closed)
  169.         elif symbol in parenthesis.keys():
  170.             if list_of_closed == [] or parenthesis[symbol] != list_of_closed[-1]:
  171.                 return False
  172.             list_of_closed.pop()
  173.             #print(list_of_closed)
  174.     return len(list_of_closed) == 0
  175.        
  176.  
  177. s = "({[]})"
  178. result = is_valid_sequence(s)
  179. print(f"Является ли скобочная последовательность {s} корректной: {result}")
  180. s = "{()[]}"
  181. result = is_valid_sequence(s)
  182. print(f"Является ли скобочная последовательность {s} корректной: {result}")
  183. s = "{()[)]}"
  184. result = is_valid_sequence(s)
  185. print(f"Является ли скобочная последовательность {s} корректной: {result}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement