این برنامه پایتون یک ماتریس مربعی n × n را از ورودی دریافت کرده و بررسی میکند که آیا مجموعه عناصر روی قطر اصلی و قطر فرعی با مجموعه عناصر محیطی برابر هستند یا نه.
اگر برابر باشند، خروجی "Yes" و در غیر این صورت "No" چاپ میشود.
def read_matrix(n: int) -> list[list[int]]:
print(f"ورود عناصر ماتریس {n}×{n}:")
matrix = []
for i in range(n):
row = list(map(int, input(f"سطر {i+1}: ").strip().split()))
if len(row) != n:
print("تعداد عناصر در هر سطر باید برابر با n باشد.")
exit()
matrix.append(row)
return matrix
def extract_diagonals(matrix: list[list[int]]) -> set[int]:
n = len(matrix)
diag = set()
for i in range(n):
diag.add(matrix[i][i]) # قطر اصلی
diag.add(matrix[i][n - 1 - i]) # قطر فرعی
return diag
def extract_border(matrix: list[list[int]]) -> set[int]:
n = len(matrix)
border = set()
for i in range(n):
for j in range(n):
if i == 0 or i == n - 1 or j == 0 or j == n - 1:
border.add(matrix[i][j])
return border
def compare_sets(diag: set[int], border: set[int]) -> str:
return "Yes" if diag == border else "No"
# دریافت اندازه ماتریس
n = int(input("اندازه ماتریس (n): "))
if n < 2:
print("ماتریس باید حداقل ۲×۲ باشد.")
exit()
# خواندن و بررسی
mat = read_matrix(n)
diagonal_set = extract_diagonals(mat)
border_set = extract_border(mat)
result = compare_sets(diagonal_set, border_set)
print(f"\nنتیجه بررسی: {result}")
اندازه ماتریس: 3
ورودی:
1 2 3
4 5 6
7 8 9
قطرها: {1, 5, 9, 3, 7}
محیط: {1, 2, 3, 4, 6, 7, 8, 9}
نتیجه بررسی: No