بخشی از مجموعه

چندین نمونه کد

~2 دقیقه مطالعه • بروزرسانی ۲۱ مهر ۱۴۰۴

شرح برنامه

این برنامه پایتون یک ماتریس مربعی 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

نوشته و پژوهش شده توسط دکتر شاهین صیامی