إلامَ توصلت في مساق Fundamentals of Programming خلال سنتي الجامعية الأولى

إلامَ توصلت في مساق Fundamentals of Programming خلال سنتي الجامعية الأولى؟

طرح مدرِّس المساق سؤالا متعلقا بالمربعات السحرية Magic Squares، طالبا منَّا التفكير في خوارزمية لتوليد تينك المربعات، ولكنني انغمست في خواطر أُخَر، باحثا عنها كالدرر، ولأن خوارزميات توليد المربعات السحرية موجودة وتملأ الدنيا، وأن سؤال المحاضر لم يكن إلا لمحاولة إحياء أذهان الطلبة الميتة، فإنني أمسكت ورقتي وقلمي وبدأت الخربشة، لأصل في النهاية إلى نتائج مبهرة

هذي المربعات السحرية أمامكم، اتركونا من خورازميات التوليد ولأتحدث عما توصلت إليه؛ نحن أمام مصفوفة فيها حقول وأعمدة، نستطيع التعبير عن كل رقم داخل المصفوفة من خلال مكانه فيها، فالرقم 9 مثلا يقع في [1, 2]، والرقم 7 يقع في [2, 1]...وهكذا دواليك.

الآن، إذا جربت أن تجرِد مواقع الأرقام بالترتيب بدءًا من أصغر رقم حتى أكبرهم في المربع، ومن ثمَّ تأخذ الفروقات بين مواقعهم، بمعنى، الرقم 1 موقعه [1, 0]، والرقم 2 موقعه [2, 2]، هكذا يكون الفرق
[1, 2] وتكمل حتى آخر فرق في المربع، فإنك ستحصل على صياغة غريبة شيئا ما، وهي أن الفروقات حينما تصل المنتصف، تبدأ في تكرار نفسها ولكن بصورة مقلوبة، بمعنى أن الفروقات من أول رقم في المربع حتى المنتصف، هي ذاتها من آخر رقم في المربع حتى المنتصف، وهذا ينطبق على المربعات ذات الترتيب الفردي والزوجي، إلى ما لا نهاية!

مثال، المربع من ترتيب 3×3:
[-2, 1]
[1, -2]
[-1, 0]

[1, 1]
[1, 1]

[-1, 0]
[1, -2]
[-2, 1]

يظهر أن النتائج تتكرر حتى اللانهاية، ووقتها كتبت كود بال++C لتجربة مربعات من ترتيب كبير، وأعطى ذات النتائج.

https://github.com/qalassa/magicSquaresPatterns
```