убрал повторение чисел из матрицы
This commit is contained in:
25
task1(2).py
25
task1(2).py
@@ -20,7 +20,7 @@ def search_binary_diagonal(matrix, K):
|
|||||||
mid = (left + right) // 2
|
mid = (left + right) // 2
|
||||||
|
|
||||||
if matrix[mid][mid] == K:
|
if matrix[mid][mid] == K:
|
||||||
return True, 1
|
return True, steps
|
||||||
elif matrix[mid][mid] < K:
|
elif matrix[mid][mid] < K:
|
||||||
diag_indx = mid
|
diag_indx = mid
|
||||||
left = mid + 1
|
left = mid + 1
|
||||||
@@ -63,18 +63,16 @@ def generate_matrix(N, M):
|
|||||||
Генерирует матрицу N x M со случайными числами
|
Генерирует матрицу N x M со случайными числами
|
||||||
"""
|
"""
|
||||||
matrix = [[0] * M for g in range(N)]
|
matrix = [[0] * M for g in range(N)]
|
||||||
|
current = 1
|
||||||
|
|
||||||
|
for i 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):
|
for j in range(M):
|
||||||
min_val = matrix[i-1][j]
|
if i == 0 and j == 0:
|
||||||
if j > 0:
|
matrix[i][j] = current
|
||||||
min_val = max(min_val, matrix[i][j-1])
|
current += r.randint(1, 8)
|
||||||
matrix[i][j] = min_val + r.randint(1, 8)
|
else:
|
||||||
|
matrix[i][j] = current
|
||||||
|
current += r.randint(1, 9)
|
||||||
|
|
||||||
return matrix
|
return matrix
|
||||||
|
|
||||||
@@ -93,6 +91,11 @@ def main():
|
|||||||
print("\nСгенерированная матрица:")
|
print("\nСгенерированная матрица:")
|
||||||
print_matrix(matrix)
|
print_matrix(matrix)
|
||||||
|
|
||||||
|
all_numbers = []
|
||||||
|
for row in matrix:
|
||||||
|
all_numbers.extend(row)
|
||||||
|
|
||||||
|
unique_numbers = set(all_numbers)
|
||||||
K = int(input("\nВведите число для поиска: "))
|
K = int(input("\nВведите число для поиска: "))
|
||||||
|
|
||||||
found, steps = search_binary_diagonal(matrix, K)
|
found, steps = search_binary_diagonal(matrix, K)
|
||||||
|
|||||||
Reference in New Issue
Block a user