Сделал 1 задание

This commit is contained in:
Игорь
2026-04-01 10:19:45 +03:00
parent 13c4b478c3
commit 5970d8323e
2 changed files with 90 additions and 0 deletions

90
task1.py Normal file
View File

@@ -0,0 +1,90 @@
import random as r
def search_matrix(matrix, K):
"""
Поиск числа K в матрице
"""
if not matrix or not matrix[0]:
return False, 0
N = len(matrix)
M = len(matrix[0])
row = 0
col = M - 1
steps = 0
while row < N and col >= 0:
steps += 1
current = matrix[row][col]
if current == K:
return True, steps
elif current > K:
col -= 1
else:
row += 1
return False, steps
def generate_matrix(N, M):
"""
Генерирует матрицу N x M со случайными числами
"""
matrix = [[0] * M for g in range(N)]
matrix[0][0] = r.randint(1, 10)
for j in range(1, M):
matrix[0][j] = matrix[0][j-1] + r.randint(1, 8)
for i in range(1, N):
for j in range(M):
min_val = matrix[i-1][j]
if j > 0:
min_val = max(min_val, matrix[i][j-1])
matrix[i][j] = min_val + r.randint(1, 8)
return matrix
def print_matrix(matrix):
"""Красивый вывод матрицы"""
for row in matrix:
print("\t".join(map(str, row)))
def main():
try:
N = int(input("Введите количество строк N: "))
M = int(input("Введите количество столбцов M: "))
except ValueError:
print("Ошибка: введите целые числа")
return
if N <= 0 or M <= 0:
print("Размеры матрицы должны быть положительными")
return
matrix = generate_matrix(N, M)
print("\nСгенерированная матрица:")
print_matrix(matrix)
try:
K = int(input("\nВведите число для поиска: "))
except ValueError:
print("Ошибка: введите целое число")
return
found, steps = search_matrix(matrix, K)
if found:
print(f"Число {K} найдено! Количество шагов: {steps}")
else:
print(f"Число {K} не найдено. Количество шагов: {steps}")
if __name__ == "__main__":
main()