بکندباز

یک تابع بنویسید که یک لیست دوبعدی دریافت کند و بررسی کند آیا این لیست یک مربع جادویی است یا خیر. اگر مربع جادویی باشد، مقدار True و در غیر این صورت مقدار False را برگرداند.

تعریف مربع جادویی:

مربع جادویی، ترتیبی از اعداد در یک مربع است که در آن مجموع هر سطر، ستون و قطر برابر با یک مقدار ثابت (ثابت جادویی) است.

مثال

is_magic([[2, 7, 6], [9, 5, 1], [4, 3, 8]]) ➞ True
# سطرها: 2+7+6 = 9+5+1 = 4+3+8 = 15
# ستون‌ها: 2+9+4 = 7+5+3 = 6+1+8 = 15
# قطرها: 2+5+8 = 6+5+4 = 15

is_magic([[1, 2], [3, 4]]) ➞ False
# سطرها: 1+2 = 3 != 3+4 = 7
# ستون‌ها: 1+3 = 4 != 2+4 = 6
# قطرها: 1+4 = 2+3 = 5

نمونه ورودی و خروجی

is_magic([[1, 2], [3, 4]]) ➞ False

is_magic([]) ➞ True

is_magic([[4,3,8],[9,5,1],[2,7,6]]) ➞ True

نکات:

  • برای این چالش، فقط با مربع‌های جادویی حاوی اعداد صحیح بین 1 تا n^2 آزمایش خواهد شد، که n طول یک ضلع مربع است. (نمونه چهار و پنج)
  • ثابت جادویی باید برای همه‌ی سطرها، ستون‌ها و قطرها یکسان باشد.
  • مربع ورودی همیشه مربعی است (تعداد سطرها برابر با تعداد ستون‌ها).
self.assertEqual(is_magic([[1, 2], [3, 4]]), False)
self.assertEqual(is_magic([]), True)
self.assertEqual(is_magic([[4,3,8],[9,5,1],[2,7,6]]), True)
self.assertEqual(is_magic([[2]]), False)
self.assertEqual(is_magic([[5,15,16,2],[10,8,7,13],[6,12,11,9],[17,3,4,14]]), False)
self.assertEqual(is_magic([[1,15,14,4],[10,11,8,5],[7,6,9,12],[16,2,3,13]]), True)
self.assertEqual(is_magic([[9,5,1],[4,3,8],[2,7,6]]), False)
self.assertEqual(is_magic([[25,13,1,19,7],[16,9,22,15,3],[12,5,18,6,24],[8,21,14,2,20],[4,17,10,23,11]]), True)

پاسخ های کاربران به این تمرین

Sa_shadow
امتیاز:‌ 8490
تصحیح اتوماتیک 1 0
‎پایتون‎
30 آبان 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

Arhsi8294
امتیاز:‌ 8490
تصحیح اتوماتیک 0 0
‎پایتون‎
30 آبان 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

MarsBoy
امتیاز:‌ 8490
تصحیح اتوماتیک 0 0
‎پایتون‎
30 آبان 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

نظرات

*
*

    MarsBoy پاسخ

    ببخشید این ماتریس چرا False هست؟ مجیک نامبرش 38 هست ...تست کردم باید درست باشه
    is_magic([[5,15,16,2],[10,8,7,13],[6,12,11,9],[17,3,4,14]]), False)

      backendbaz پاسخ

      توی بخش نکات، اولین نکته رو ببینید. طبق نکته اول این تست False میشه

تمرینات مرتبط