Bu sir tezda butun Internetga tarqaldi. Minglab odamlar sehrli maydon qanday ishlashini qiziqtira boshladilar. Bugun siz nihoyat javob topasiz!

Sehrli maydonning siri

Aslida, bu topishmoq juda oddiy va insonning e'tiborsizligini kutish bilan qilingan. Keling, sehrli qora kvadrat qanday ishlashini haqiqiy misol bilan tushunaylik:

  1. Keling, 10 dan 19 gacha bo'lgan istalgan sonni o'ylab ko'raylik. Endi bu sondan uning tashkil etuvchi raqamlarini ayirib olaylik. Masalan, 11 ni olaylik. 11 dan bir birlikni ayirib, keyin esa yana bitta birlikni ayiraylik. Bu chiqadi 9. Aslida 10 dan 19 gacha bo'lgan qaysi raqamni olishingiz muhim emas. Hisob-kitoblarning natijasi har doim 9 bo'ladi. "Sehrli kvadrat" dagi 9 raqami rasmlar bilan birinchi raqamga mos keladi. Agar siz diqqat bilan qarasangiz, xuddi shu raqamlar juda ko'p sonli raqamlarga tayinlanganligini ko'rishingiz mumkin.
  2. Agar siz 20 dan 29 gacha raqamni olsangiz nima bo'ladi? Balki siz allaqachon taxmin qilgandirsiz? To'g'ri! Hisob-kitoblarning natijasi har doim 18 bo'ladi. 18 raqami rasmlar bilan diagonaldagi ikkinchi pozitsiyaga mos keladi.
  3. Agar siz 30 dan 39 gacha raqamni olsangiz, siz allaqachon taxmin qilganingizdek, 27 raqami chiqadi.27 raqami ham shunday tushunarsiz "Sehrli kvadrat" diagonalidagi raqamga mos keladi.
  4. Shunga o'xshash algoritm 40 dan 49 gacha, 50 dan 59 gacha va hokazo har qanday raqamlar uchun haqiqiy bo'lib qoladi.

Ya'ni, qaysi raqamni taxmin qilganingiz muhim emas - "Sehrli kvadrat" natijani taxmin qiladi, chunki 9, 18, 27, 36, 45, 54, 63, 72 va 81-sonli kataklarda. Aslida, xuddi shu belgi mavjud.

Aslida, bu jumboqni oddiy tenglama bilan osongina tushuntirish mumkin:

  1. Har qanday ikki xonali sonni tasavvur qiling. Raqam qanday bo'lishidan qat'iy nazar, u x*10+y shaklida ifodalanishi mumkin. O'nliklar "x" va birliklar "y" vazifasini bajaradi.
  2. Yashirin raqamdan uni tashkil etuvchi raqamlarni ayiring. Tenglamani qo‘shing: (x*10+y)-(x+y)=9*x.
  3. Hisob-kitoblar natijasida chiqqan raqam jadvaldagi ma'lum bir belgini ko'rsatishi kerak.

Qaysi raqam "x" rolida bo'lishi muhim emas, u yoki bu tarzda siz soni to'qqizga karrali bo'lgan belgini olasiz. Turli raqamlar ostida bitta belgi borligiga ishonch hosil qilish uchun jadvalga va 0,9,18,27,45,54,63,72,81 va keyingi raqamlarga qarang.

"Sehrli maydon" o'yinining siri

Ishonchim komilki, siz qaerdadir "sehrli kvadrat" iborasini eshitgansiz. Biz bu “qabilaning” bir qancha vakillarini bilamiz. Internetda eng keng tarqalgan va tez-tez topilgan "Magic Square" o'yini. Uning mohiyati shundaki, sizning e'tiboringiz "fikrlarni taxmin qilish" ga qodir bo'lgan stolga (bu "sehrli kvadrat") taklif qilinadi. Tabiiyki, har qanday o'yin singari, u ham ma'lum qoidalarga ega. Har qanday ikki xonali sonni o'ylab ko'rish kerak, so'ngra undan bu raqamning raqamlaridan iborat yig'indini ayirish kerak. Jadvalda olingan qiymatni unga mos keladigan belgi bilan birga toping. Va faqat bu belgi kvadratni taxmin qiladi. O'yin kulgili va birinchi qarashda haqiqatan ham sehrli, chunki dastlab qaysi raqam haqida o'ylaganingizdan qat'iy nazar, kvadrat har doim belgini taxmin qiladi. Bu qanday ishlaydi? "Sehrli kvadrat" qanday ishlaydi? Aslida, javob sirtda yotadi. Agar siz kvadratni ketma-ket bir necha marta tekshirsangiz, bir xil belgi doimo tushib qolishini sezasiz. Jadvalga diqqat bilan qarasak, bu belgi gorizontal holatda joylashganligi va u 9 ga qoldiqsiz bo'linadigan raqamlarga to'g'ri kelishini ko'rsatadi.Biroq, qaysi ikki xonali sonni tanlamasligingizdan qat'iy nazar, javobingizda faqat ular olinadi. “Sehrli kvadrat”ni fosh qildik deyishimiz mumkin. Buning siri unda emas, balki o'yin shartlarida. Gap shundaki, bunday inkor etib bo'lmaydigan haqiqat bor: "Agar siz har qanday ikki xonali sondan uning raqamlari yig'indisini ayirsangiz, 9 ga qoldiqsiz bo'linadigan sonni olasiz". Shunday qilib, biz "sehrli kvadrat" qanday ishlashini aniqladik. Tasavvufning bir zum ham emas! Garchi, printsipial jihatdan, raqamlar bilan bog'liq hamma narsa sehrga emas, balki hisob-kitoblar va naqshlarga asoslangan.

Sehrli kvadratning siri:

7 t41 k86 h21 n33 w1 p35 r61 p12 w90 a
15 h23 z57 v55 q71 d66 h78 g14 q81 a 10 t
88 d59 j74 n69 b68 m38 i22 m72 a 3 v58 m
62 l77 m40 c98 u20 s94 m63 a 87 t99 m37 x
92 s96 g51 f73 e46 i54 a 53 s44 h43 k2 d
34 o31 e91 t19 i45 a 50 k85 v28 s38 l75 v
79 h8 c11 s36 a 16 f24 z4 q67 m6 f48 o
17 p65 w27 a 42 p89 e39 s95 x32 f25 d26 h
29 c18 a 82 k60 o93 r83 y52 k56 p53 i30 y
9 a 80 q47 d84 l5 g13 x70 d49 g76 c64 e

Albrecht Dyurerning sehrli maydoni

Ba'zida raqamli naqshlar shunchalik ajoyib nisbatlarga egaki, bu erda jodugarlik qilinmaganga o'xshaydi. Masalan, yana bir "sehrli kvadrat" ma'lum - Albrecht Dyurer. Matematikada u natural sonlar bilan to'ldirilgan, qator va ustunlar soni bir xil bo'lgan kvadrat jadval sifatida tushuniladi. Bundan tashqari, gorizontal, vertikal yoki diagonal bo'yicha bu raqamlarning yig'indisi bir xil natijaga teng bo'lishi kerak. Sehrli maydon bizga Xitoydan keldi, bugun hammamiz buni bilamiz yorqin vakili- Sudoku krossvordi. Evropada aynan Dyurer o'zining "Melanxoliya" gravyurasida "sehrli" figurani birinchi bo'lib tasvirlagan. Ushbu "sehrli kvadrat"ning o'ziga xosligi nimada? Uning asosida 15 va 14 raqamlari kombinatsiyasi mavjud bo'lib, bu gravyuraning nashr etilgan yiliga to'g'ri keladi. Va raqamlar yig'indisi nafaqat diagonal, vertikal va gorizontal qatorlardan, balki kvadratning burchaklarida, markaziy kichik kvadratda va uning yon tomonlaridagi to'rt hujayrali kvadratlarning har birida joylashgan raqamlardan iborat. . Bu raqamlar taqdirni bashorat qilmaydi va fikrlarni taxmin qilmaydi, ular o'zlarining naqshlarida noyobdir.

Pifagor maydoni

Agar biz folbinlikka murojaat qilsak, bu erda ham Pifagorning "sehrli maydoni" vakili bor. Bu nomni hammamiz geometriya darslaridan bilamiz. Ammo faqat bizning davrimizda bu odam matematik va faylasuf deb atala boshlandi. Qadimda u donolik ustozi sifatida tanilgan, u haqida she'rlar yozilgan, g'azallar aytilgan, unga sig'inishgan, ko'ruvchi hisoblangan. Pifagor yangi fanga asos soldi - numerologiya, ilgari u din sifatida qabul qilingan.

U raqamlar deyarli har bir hodisani, jumladan, inson taqdirini belgilash, uning xarakteri, iste'dodlari va zaif tomonlari haqida gapirib berishi mumkinligiga ishondi. Buni Pifagor kvadrati yordamida amalga oshirish mumkin edi. "Sehrli kvadrat" qanday ishlaydi va bu nima? Pifagorning sehrli kvadrati 3/3 kvadrat (satrlar, ustunlar) bo'lib, unda 1 dan 9 gacha raqamlar kiritiladi.Prognoz qilish uchun insonning tug'ilgan sanasi asos qilib olinadi. Hisob-kitoblarda "0" ko'rinmasligi muhim. Oddiy hisob-kitoblar va formulalar yordamida raqamlar to'plami olinadi, ular keyinchalik kvadratga kiritilishi kerak. Har bir raqam o'z ma'nosiga ega va ma'lum bir mulk uchun javobgardir. Shunday qilib, 4 - salomatlik uchun "mas'ul", 9 - aql uchun. Kvadratingizda bir xil raqam necha marta sodir bo'lishiga qarab, siz bir yoki boshqa mulkning ustunligi haqida aytishingiz mumkin. Masalan, 4 ning yo'qligi jismoniy zaiflik va kasallikning ko'rsatkichidir va 444 - yaxshi sog'liq va quvnoqlik ko'rsatkichi. Pifagor maydoni qanchalik to'g'ri, buni har qanday folbin sifatida aytish qiyin. Ammo endi, sehrli kvadrat qanday ishlashini bilib, siz do'stlaringiz va tanishlaringizning belgilarini hisoblab, kamida bir yoki ikki soat yoqimli o'tishingiz mumkin.

Boylik, sog'liq va boshqa narsalar uchun "magnit" ...

Pifagorlar boylik energiyasini "jalb qilish" ga qodir sehrli kvadrat yasadi.

Aytgancha, Genri Fordning o'zi Pifagor maydonidan foydalangan.
U buni dollar qog'oziga chizib, uni har doim hamyonining yashirin bo'limiga joziba sifatida olib yurardi.
Ma'lumki, Ford qashshoqlikdan shikoyat qilmagan. Genri 83 yoshida korporatsiya tizginini va 1 milliard dollarlik katta boylikni (inflyatsiyaga qarab - joriy narxlarda 36 milliarddan ortiq) nevaralariga topshirdi.

*** *** *** *** ***

Kvadratga maxsus tarzda yozilgan raqamlar nafaqat boylikni jalb qila olmaydi.

Misol uchun, buyuk tabib Paracelsus o'zining kvadratini - "salomatlik talismanı" qildi.

Umuman olganda, agar siz sehrli kvadratni to'g'ri qursangiz, sizga kerak bo'lgan energiya oqimlarini hayotga olib kelishingiz mumkin.

Shaxsiy talismanni qanday qilish kerakPifagorning sehrli kvadrati Umid qilamanki, siz raqamlarni yozishingiz va o'ngacha hisoblashingiz mumkinmi?

Keyin davom eting. Biz sizning shaxsiy talismaningizga aylanishi mumkin bo'lgan energiya kvadratini chizamiz.

U uchta ustun va uchta qatordan iborat. Shaxsiy numerologik kodingizni tashkil etuvchi faqat to'qqizta raqam mavjud.

Ushbu kodni qanday hisoblash mumkin?

Birinchi qatorga qo'ying uchta raqam:

* sizning raqamingiz tug'ilgan kun,
* tug'ilgan oy
* tug'ilgan yili.

Misol uchun, siz 1971 yil 25 mayda tug'ilgansiz. Keyin sizning birinchi raqamingiz kunning raqami: 25. Bu murakkab raqam, numerologiya qonunlariga ko'ra, uni 2 va 5 raqamlarini qo'shish orqali oddiy raqamga kamaytirish kerak. Ma'lum bo'lishicha - 7: biz qilamiz ettitani maydonning birinchi katagiga qo'ying.

Ikkinchisi - oyning soni: 5, chunki may - beshinchi oy. E'tibor bering: agar odam dekabr oyida, ya'ni 12-oyda tug'ilgan bo'lsa, biz bu raqamni oddiy raqamga kamaytirishimiz kerak edi: 1 + 2 = 3.

Uchinchisi - yil soni. Bu erda hamma oddiyga qisqartirishi kerak bo'ladi. Shunday qilib: 1971 yil (tug'ilgan yil) kompozit sonlarga ajratiladi va biz ularning yig'indisini hisoblaymiz. 1+9+7+1 = 18, 1+8 =9.

Birinchi qatorga raqamlarni kiritamiz: 7, 5, 9.

Ikkinchi qatorga raqamlarni qo'yamiz:

* to'rtinchi - ismingiz,
* beshinchisi - otasining ismi,
* oltinchisi - familiyalar.

Biz ularni alfanumerik yozishmalar jadvali bo'yicha aniqlaymiz.


Unga amal qilib, siz ismingizning har bir harfining raqamli qiymatlarini qo'shasiz, agar kerak bo'lsa, summani tub songa keltirasiz.

Xuddi shunday, biz otasining ismi va familiyasi bilan harakat qilamiz.

Masalan, Mol= 3+9+7+2+7+3=31=3+1=4

Endi bizda energiya kvadratining ikkinchi qatori uchun uchta raqam bor.

Uchinchi qator

Uchinchi qatorni to'ldirish, ettinchi, sakkizinchi va to'qqizinchi raqamlarni topish uchun siz astrologiyaga murojaat qilishingiz kerak bo'ladi.

Ettinchi raqam bu sizning burjingizning raqami.

Bu erda hamma narsa oddiy. Qo'y - birinchi belgi, u 1 raqamiga mos keladi. Baliq - o'n ikkinchi belgi, ular 12 raqamiga to'g'ri keladi.

Diqqat: bu holda, ikki xonali raqamlar oddiy raqamlarga kamaytirilmasligi kerak, 10, 11 va 12 raqamlari o'z ma'nosiga ega!

Sakkizinchi raqam- Sharqiy taqvim bo'yicha sizning belgingizning raqami. Buni quyidagi jadvalda topish oson:

Ya'ni, agar siz 1974 yilda tug'ilgan bo'lsangiz, sizning belgi raqamingiz 3 (Tiger), va 1982 yilda bo'lsa - 11 (It).

To'qqizinchi raqam- sizning xohishingizning numerologik kodi.

Masalan, siz sog'liq uchun energiya olasiz. Shunday qilib, kalit so'z "salomatlik" dir. Birinchi jadvalga muvofiq harflarni yana qo'shamiz:

Z - 9, D - 5, O - 7, P - 9, O - 7, B - 3, b - 3, E - 6 \u003d 49, ya'ni 4 + 9 \u003d 13. Biz yana murakkab raqamga ega bo'lganimiz sababli, biz kamaytirishni davom ettiramiz: 1 + 3 = 4

Yodda tuting: agar siz 10, 11 va 12 raqamlarini olgan bo'lsangiz, unda bu holda ularni kamaytirmaslik kerak.

Xo'sh, agar sizda pul etarli bo'lmasa, unda siz "boylik", "pul" yoki aniqroq "dollar", "evro" so'zlarining ma'nosini hisoblashingiz mumkin.

Shunday qilib, sizning sehrli kvadratingizdagi oxirgi to'qqizinchi raqam raqam bo'ladi - kalit so'zning numerologik qiymati yoki boshqacha qilib aytganda, istak kodi.

"Kvadrat" meditatsiyasini kuylang

Va endi sehrli kvadratimizda to'qqiz raqamni uchta raqamdan uchta qatorga joylashtiramiz.

Chizilgan kvadratni ramkaga solib, uyda yoki ofisda osib qo'yish mumkin.

Va siz uni dadangizga qo'yishingiz va uni qiziquvchan ko'zlardan uzoqroqqa qo'yishingiz mumkin. Ichki ovozingizni tinglang, u sizga nima to'g'ri kelishini aytadi.

Lekin bu hammasi emas. Shaxsiy numerologik kodingiz raqamlarini hujayralardagi tartibda o'rganing.

Nima uchun? Bu sizning shaxsiy mantrangiz, agar xohlasangiz, Xudoga to'g'ridan-to'g'ri yo'lingiz. U sizni koinotdagi turli xil kuchlardan kerakli oqimga sozlaydi va boshqa tomondan ular sizni eshitadi va tebranishlaringizga javob beradi.

Shuning uchun siz mantrani yoddan o'rganishingiz kerak. Va meditatsiya qilish uchun.

Numerologik kodingizni aqliy ravishda takrorlayotganda, qulay stulga o'tiring yoki divanga yoting. Rohatlaning. Qo'llaringizni kaftlaringizni yuqoriga ko'taring, xuddi energiya olayotgandek. Bir muncha vaqt o'tgach, siz barmoqlaringizdagi karıncalanma, tebranish, ehtimol issiqlik yoki aksincha, kaftlaringizdagi sovuqni his qilasiz.

Zo'r: energiya ketdi! Meditatsiya siz uni to'xtatmoqchi bo'lguningizcha, turishingiz kerak bo'lguningizcha yoki ... uxlab qolguningizcha davom etadi.

Sehrli kvadratda butun sonlar gorizontal, vertikal va diagonal bo'yicha yig'indisi bir xil songa teng bo'ladigan tarzda taqsimlanadi, bu sehrli doimiy deb ataladi.

Dunyo madaniyatlaridagi sehrli maydon

Sehrli kvadratga misol Lo Shu, ya'ni 3 dan 3 gacha bo'lgan jadval. Unga 1 dan 9 gacha raqamlar shunday yozilganki, har bir qator va diagonal qo'shilib 15 ga etadi.

Xitoy afsonalaridan birida aytilishicha, bir kuni suv toshqini paytida podshoh suvni dengizga yo'naltiradigan kanal qurishga harakat qilgan. To‘satdan Lo daryosidan qobig‘ida g‘alati naqshli toshbaqa paydo bo‘ldi. Bu 1 dan 9 gacha bo'lgan raqamlar kvadratlarga yozilgan to'r edi.Kvadratning har bir tomonidagi raqamlarning yig'indisi, shuningdek, diagonal bo'yicha, 15 ni tashkil etdi. Bu raqam 24 tsiklning har biridagi kunlar soniga to'g'ri keldi. Xitoy quyosh yili.

Luo Shu maydoni Saturnning sehrli maydoni deb ham ataladi. Ushbu kvadratning pastki qatorida o'rtada 1 raqami va yuqori o'ng katakchada 2 raqami mavjud.

Sehrli maydon boshqa madaniyatlarda ham mavjud: fors, arab, hind, evropalik. U 1514 yilda nemis rassomi Albrext Dyurer tomonidan o'zining "Melanxoliya" gravyurasida suratga olingan.

Dyurer gravyurasidagi sehrli kvadrat Evropa badiiy madaniyatida paydo bo'lgan birinchi kvadrat hisoblanadi.

Sehrli kvadratni qanday hal qilish kerak

Sehrli kvadratni har bir chiziqning yig'indisi sehrli doimiy bo'ladigan tarzda hujayralarni raqamlar bilan to'ldirish orqali hal qilish kerak. Sehrli kvadratning yon tomoni juft yoki toq sonli hujayralardan iborat bo'lishi mumkin. Eng mashhur sehrli kvadratlar to'qqiz (3x3) yoki o'n olti (4x4) hujayradan iborat. Sehrli kvadratlarning keng assortimenti va ularni hal qilish variantlari mavjud.

Juft sonli katakchali kvadratni qanday yechish mumkin

Sizga 4x4 kvadrat chizilgan qog'oz varag'i, oddiy qalam va silgi kerak bo'ladi.

Yuqori chap katakdan boshlab kvadrat kataklariga 1 dan 16 gacha raqamlarni kiriting.

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

Bu kvadratning sehrli doimiysi 34 ga teng. Diagonal chiziqdagi raqamlarni 1 dan 16 gacha almashtiring. Oddiylik uchun 16 va 1 ni, keyin esa 6 va 11 ni almashtiring. Natijada diagonaldagi raqamlar 16, 11, 6, 1.

16 2 3 4
5 11 7 8
9 10 6 12
13 14 15 1

Ikkinchi diagonal chiziqdagi raqamlarni almashtiring. Bu chiziq 4 da boshlanadi va 13 da tugaydi. Ularni almashtiring. Endi qolgan ikkita raqamni almashtiring - 7 va 10. Chiziqda yuqoridan pastgacha raqamlar shu tartibda joylashadi: 13, 10, 7, 4.

16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1

Agar siz har bir satrdagi yig'indini hisoblasangiz, siz 34 ni olasiz. Bu usul hujayralar soni juft bo'lgan boshqa kvadratlar bilan ishlaydi.

Sehrli kvadratlarning bir necha xil tasniflari mavjud.

beshinchi tartib, ularni qandaydir tarzda tizimlashtirish uchun mo'ljallangan. Kitobda

Martin Gardner [GM90, pp. 244-345] ushbu usullardan birini tasvirlaydi -

markaziy maydondagi raqamga ko'ra. Usul qiziq, ammo boshqa narsa yo'q.

Oltinchi tartibning nechta kvadrati borligi hali noma'lum, ammo ular taxminan 1,77 x 1019. Raqam juda katta, shuning uchun ularni to'liq qidiruv yordamida sanashga umid yo'q, lekin hech kim sehrli kvadratlarni hisoblash formulasini topa olmadi.

Sehrli kvadratni qanday qilish kerak?

Sehrli kvadratlarni qurishning ko'plab usullari mavjud. Sehrli kvadratlarni yasashning eng oson yo'li g'alati tartib. Biz 17-asr frantsuz olimi tomonidan taklif qilingan usuldan foydalanamiz A. de la Louber (De La Loubère). U beshta qoidaga asoslanadi, ularning ishlashini biz eng oddiy sehrli kvadrat 3 x 3 hujayrada ko'rib chiqamiz.

Qoida 1. Birinchi qatorning o'rta ustuniga 1 qo'ying (5.7-rasm).

Guruch. 5.7. Birinchi raqam

Qoida 2. Keyingi raqamni iloji bo'lsa, joriy raqamga ulashgan katakchaga diagonal ravishda o'ngga va yuqoriga qo'ying (5.8-rasm).

Guruch. 5.8. Ikkinchi raqamni qo'yishga harakat qilmoqda

Qoida 3. Agar yangi katak yuqoridagi kvadratdan tashqariga chiqsa, u holda raqamni eng pastki qatorga va keyingi ustunga yozing (5.9-rasm).

Guruch. 5.9. Biz ikkinchi raqamni qo'yamiz

Qoida 4. Agar hujayra o'ngdagi kvadratdan tashqariga chiqsa, u holda raqamni birinchi ustunga va oldingi qatorga yozing (5.10-rasm).

Guruch. 5.10. Uchinchi raqamni qo'yamiz

Qoida 5. Agar hujayra allaqachon band bo'lsa, joriy katak ostidagi keyingi raqamni yozing (5.11-rasm).

Guruch. 5.11. Biz to'rtinchi raqamni qo'yamiz

Guruch. 5.12. Biz beshinchi va oltinchi raqamni qo'yamiz

To'liq kvadratni to'ldirguningizcha 3, 4, 5-qoidalarga yana amal qiling (2-rasm).

To'g'ri emasmi, qoidalar juda oddiy va tushunarli, lekin hatto 9 ta raqamni tartibga solish hali ham juda zerikarli. Biroq, sehrli kvadratlarni qurish algoritmini bilgan holda, biz o'zimizga faqat ijodiy ishni, ya'ni dastur yozishni qoldirib, barcha muntazam ishlarni kompyuterga osongina ishonib topshirishimiz mumkin.

Guruch. 5.13. Kvadratni quyidagi raqamlar bilan to'ldiring

Sehrli kvadratlar loyihasi (sehrli)

Dastur uchun maydon to'plami sehrli kvadratlar juda aniq:

// AVLODLAR UCHUN DASTUR

// G'OQ SEHRLI Kvadrat

// DE LA LUBERT USULI BILAN

umumiy qisman sinf Form1 : Shakl

//Maks. kvadrat o'lchamlari: const int MAX_SIZE = 27; //var

intn=0; // kvadrat tartibi int [,] mq; // sehrli kvadrat

int raqami=0; // joriy raqamni kvadratga aylantiring

intcol=0; // joriy ustun int row=0; // joriy qator

De la Louber usuli har qanday o'lchamdagi g'alati kvadratlarni yasash uchun javob beradi, shuning uchun biz foydalanuvchiga kvadrat tartibini tanlashiga ruxsat berishimiz mumkin, shu bilan birga tanlash erkinligini 27 katakchagacha cheklab qo'yamiz.

Foydalanuvchi xohlagan tugmani bosgandan so'ng btnGen Generate! , btnGen_Click usuli raqamlarni saqlash uchun massiv yaratadi va generatsiya usuliga o'tadi:

// "YaSALASH" TUGMANI BOSING

xususiy void btnGen_Click(ob'ekt jo'natuvchisi, EventArgs e)

// kvadrat tartibi:

n = (int)udNum.Value;

// massiv yarating:

mq = new int;

//sehrli kvadrat hosil qilish: generator();

lstRes.TopIndex = lstRes.Items.Count-27;

Bu erda biz de la Louber qoidalariga muvofiq harakat qilishni boshlaymiz va kvadratning birinchi qatorining o'rta katakchasiga birinchi raqamni - bittani yozamiz (yoki agar xohlasangiz, massiv):

//Sehrli kvadrat hosil qiling void generator()(

//birinchi raqam: raqam=1;

//birinchi raqam uchun ustun - o'rta: col = n / 2 + 1;

//birinchi raqam uchun qator - birinchisi: satr=1;

//kvadrati: mq= raqam;

Endi biz hujayralardagi qolgan hujayralarni ketma-ket qo'shamiz - ikkitadan n * n gacha:

// keyingi raqamga o'ting:

Har holda, biz haqiqiy hujayraning koordinatalarini eslaymiz

int tc=col; int tr = qator;

va diagonal ravishda keyingi katakka o'ting:

Uchinchi qoidaning bajarilishini tekshiramiz:

agar (qator< 1) row= n;

Va keyin to'rtinchisi:

agar (col > n) (col=1;

3-qoidaga o'tish;

Va beshinchisi:

agar (mq != 0) ( col=tc;

qator=tr+1; 3-qoidaga o'tish;

Kvadrat katakchasida allaqachon raqam borligini qanday bilamiz? - Juda oddiy: biz ehtiyotkorlik bilan barcha katakchalarda nol yozdik va tugagan kvadratdagi raqamlar noldan katta. Shunday qilib, massiv elementining qiymatiga ko'ra, biz darhol hujayra bo'sh yoki allaqachon raqam bilan aniqlaymiz! E'tibor bering, bu erda biz keyingi raqam uchun katakchani qidirishdan oldin eslab qolgan hujayra koordinatalari kerak.

Ertami-kechmi, biz raqam uchun mos katakni topamiz va uni tegishli massiv katakchasiga yozamiz:

//kvadrati: mq = raqam;

O'tishning maqbulligini tekshirishni tashkil qilishning boshqa usulini sinab ko'ring

voy hujayra!

Agar bu raqam oxirgi bo'lsa, u holda dastur o'z majburiyatlarini bajargan bo'lsa, aks holda u ixtiyoriy ravishda hujayrani quyidagi raqam bilan ta'minlashga kirishadi:

//agar barcha raqamlar o'rnatilmagan bo'lsa, agar (raqam< n*n)

//keyingi raqamga o'ting: keyingi raqamga o'ting;

Va endi maydon tayyor! Biz uning sehrli summasini hisoblaymiz va uni ekranga chiqaramiz:

) //generate()

Massivning elementlarini chop etish juda oddiy, lekin har xil “uzunlikdagi” raqamlarning hizalanishini hisobga olish muhim, chunki kvadratda bir, ikki va uch xonali raqamlar bo‘lishi mumkin:

//Sehrli kvadratni chop eting writeMQ()

lstRes.ForeColor = Rang .Qora;

string s = "Sehrli summa =" + (n*n*n+n)/2; lstRes.Items.Add(lar);

lstRes.Items.Add("" );

// sehrli kvadratni chop eting: for (int i= 1; i<= n; ++i){

s="" ;

uchun (int j= 1; j<= n; ++j){

agar (n*n > 10 && mq< 10) s += " " ; if (n*n >100 && mq< 100) s += " " ; s= s + mq + " " ;

lstRes.Items.Add(lar);

lstRes.Items.Add("" ); )//writeMQ()

Biz dasturni ishga tushiramiz - kvadratchalar tezda olinadi va ko'zni quvontiradi (2-rasm).

Guruch. 5.14. Juda kvadrat!

S. Gudman, S. Hidetniemi kitobida Algoritmlarni ishlab chiqish va tahlil qilish bilan tanishtirish

mov , 297-299-betlarda biz bir xil algoritmni topamiz, ammo "qisqartirilgan" taqdimotda. Bu bizning versiyamiz kabi "shaffof" emas, lekin u to'g'ri ishlaydi.

btnGen2 2 hosil qilish tugmachasini qo'shing! va algoritmni tilda yozing

btnGen2_Click usuliga C-sharp:

// ODDMS algoritmi

xususiy void btnGen2_Click(ob'ekt jo'natuvchisi, EventArgs e)

//kvadrat tartibi: n = (int )udNum.Value;

// massiv yarating:

mq = new int;

//sehrli kvadrat hosil qilish: int qator = 1;

int col = (n+1)/2;

uchun (int i = 1; i<= n * n; ++i)

mq = i; agar (i % n == 0)

agar (qator == 1) qator = n;

agar (col == n) col = 1;

//kvadrat tugallandi: writeMQ();

lstRes.TopIndex = lstRes.Items.Count - 27;

Biz tugmachani bosamiz va "bizning" kvadratchalarimiz yaratilganligiga ishonch hosil qilamiz (1-rasm).

Guruch. 5.15. Yangi ko'rinishdagi eski algoritm


yaqin