روشهای زیادی میتوانید با جستجوی مربع جادویی در کتابهای گوناگون یا حتی منبعهای برخط (آنلاین) بیابید. در صورت یافتن زمان چند روش که شاید برای شما به عنوان یک دانشآموز روش سرراست و ایدهآل نباشند ولی روشهایی هستند که برای من خیلی بدیهی هستند و با دیدن پرسش مشابه مانند سودوکو، رنگآمیزی گراف، مربع جادویی و غیره سریع به ذهنم میآیند میگذارم.
بیاییم پرسش را با زبان برابریها (معادلات) بازنویسی کنیم. یک جدول ۳ در ۳ داریم و ۱۱ عدد -4,-3,\cdots,6. قرار است در نُه خانهٔ این جدول از این ۱۱ عدد جایگذاری کنیم به گونهای که چند شرط برقرار باشند. پس برای هر خانه یک متغیر داریم. متغیر متناظر با خانهٔ ردیفِ iاُم و ستون jاُم را با x_{i,j} نمایش دهید. پس اکنون جملهٔ «در خانهای که در سطر یک و ستون دو است عدد ۵ را میگذارم» خیلی ساده نوشته میشود «x_{1,2}=5». چون میخواهیم این متغیرها فقط از ۱۱ عدد یادشده بتوانند گزینش شوند یک برابری میافزائیم که این شرط را برقرار کند. چگونه؟ وقتی مینویسید (x-1)(x-2)=0 چه چیزی به خواننده میگوئید؟ x یا میتواند ۱ باشد یا میتواند ۲ باشد. پس کافیست ۹ برابری به شکل زیر بنویسیم:
\prod_{k=-4}^6(x_{i,j}-k)=0
که 1\leq i,j\leq 3. اما مجموعهٔ پاسخهای دستگاه برابریهایی که فقط این ۹ برابری را داشته باشند همهٔ 11^9 حالت ممکن پر کردن جدول با ۱۱ عدد یادشده را شامل میشود که ممکن است شرطهای پرسش اصلی را رعایت نکنند. برای نمونه
\begin{bmatrix}
1 & 0 & 0\\
0 & 0 & 0\\
0 & 0 & 0
\end{bmatrix}
که جمع ستون دوم با جمع ستون یکُم برابر نیست. چگونه شرطها را در دستگاه بیفزائیم؟ خیلی راحت، برابریهای لازم را میافزائیم. ۳ سطر و ۳ ستون و ۲ قطر داریم. اجمع اعضای آنها را دو به دو باید با هم برابر قرار دهیم. ولی توجه کنید که به خاطر ویژگی ترایاییِ تساوی کافیست یکی را انتخاب کنیم و سپس هر یک از سایرین را یک بار برابر با آن بنویسیم. آنگاه همه با هم باید برابر باشند. بنابراین به جای نوشتن \binom{8}{2} برابری کافیست ۷ برابری بنویسید.
\begin{align}
\sum_{i=1}^3x_{i,i}-\sum_{i=1}^3x_{i,4-i}=0 & \\
\sum_{i=1}^3x_{i,k}-\sum_{i=1}^3x_{i,4-i}=0 &\quad ; k=1,2,3\\
\sum_{j=1}^3x_{k,j}-\sum_{i=1}^3x_{i,4-i}=0 &\quad ; k=1,2,3
\end{align}
اکنون هر پاسخ از این دستگاه ۱۶ برابری- ۹مجهول دقیقا یک پاسخ برای مربع جادویی شما است و برعکس. اما چگونه این دستگاه را حل کنیم؟ راههای بسیاری هست. یکی از این روشها استفاده از پایههای گروبنر است که در درسهایی مانند هندسهٔ جبری محاسباتی آن را میبینید.
در زیر از نرمافزار Maple برای حل این دستگاه کمک میگیریم.
F := [seq(seq(product(x[i, j] - k, k = -4 .. 6), i = 1 .. 3), j = 1 .. 3), add(x[i, i], i = 1 .. 3) - add(x[i, 4 - i], i = 1 .. 3), seq(add(x[k, j], j = 1 .. 3) - add(x[i, 4 - i], i = 1 .. 3), k = 1 .. 3), seq(add(x[i, k], i = 1 .. 3) - add(x[i, 4 - i], i = 1 .. 3), k = 1 .. 3)]:
solutions:=solve([seq(F[i]=0,i=1..nops(F))],[seq(seq(x[i,j],i=1..3),j=1..3)]):
solutions[1];
در Maple 2020 به پیام زیر برمیخوید:
Warning, returning only the first 100 solutions, increase _MaxSols to see more solutions
که به این معنا است که به طور خودکار و پیشفرض دستور solve
پس از بدست آوردن ۱۰۰ پاسخ میایستد و دیگر ادامه نمیدهد مگر اینکه تنظیم کنید که بیشینهٔ تعداد پاسخها متفاوت باشد. در نتیجه مربع جادویی شما بزرگتر یا مساوی ۱۰۰ پاسخ دارد. نخستین پاسخ در خروجی کد بالایمان به شکل زیر است.
\begin{bmatrix}
-3 & 0 & -3\\
-2 & -2 & -2\\
-1 & -4 & -1
\end{bmatrix}
که جمع هر سطر و ستون و قطر برابر با -6 است و هر ۹ درایه عضو مجموعهٔ \lbrace -4,-2,\cdots,6\rbrace هستند.