Ang misteryong ito ay mabilis na kumalat sa buong Internet. Libu-libong tao ang nagsimulang magtaka kung paano gumagana ang magic square. Ngayon ay sa wakas ay nahanap mo na ang sagot!

Ang Lihim ng Magic Square

Sa katunayan, ang bugtong na ito ay medyo simple at ginawa sa pag-asa ng hindi pansin ng tao. Unawain natin kung paano gumagana ang magic black square sa isang tunay na halimbawa:

  1. Mag-isip tayo ng anumang numero mula 10 hanggang 19. Ngayon ay ibawas natin ang mga constituent digit nito mula sa numerong ito. Halimbawa, kunin natin ang 11. Ibawas natin ang isang yunit sa 11 at pagkatapos - isa pang yunit. Lalabas ito ng 9. Sa katunayan, hindi mahalaga kung aling numero mula 10 hanggang 19 ang kukunin mo. Ang resulta ng mga kalkulasyon ay palaging magiging 9. Ang numero 9 sa "Magic Square" ay tumutugma sa unang digit na may mga larawan. Kung titingnan mong mabuti, makikita mo na ang parehong mga numero ay itinalaga sa isang napakalaking bilang ng mga numero.
  2. Ano ang mangyayari kung kukuha ka ng numero sa pagitan ng 20 at 29? Baka nahulaan mo na? Tama! Ang resulta ng mga kalkulasyon ay palaging magiging 18. Ang numero 18 ay tumutugma sa pangalawang posisyon sa dayagonal na may mga larawan.
  3. Kung kukuha ka ng isang numero mula 30 hanggang 39, kung gayon, tulad ng maaari mo nang hulaan, lalabas ang numero 27. Ang numero 27 ay tumutugma din sa numero sa dayagonal ng isang hindi maipaliwanag na "Magic Square".
  4. Ang isang katulad na algorithm ay nananatiling totoo para sa anumang mga numero mula 40 hanggang 49, mula 50 hanggang 59, at iba pa.

Iyon ay, lumalabas na hindi mahalaga kung anong numero ang iyong nahulaan - hulaan ng "Magic Square" ang resulta, dahil sa mga cell na may bilang na 9, 18, 27, 36, 45, 54, 63, 72 at 81, sa sa katunayan, mayroong parehong simbolo.

Sa katunayan, ang puzzle na ito ay madaling maipaliwanag sa isang simpleng equation:

  1. Isipin ang anumang dalawang-digit na numero. Anuman ang bilang, maaari itong katawanin bilang x*10+y. Ang mga sampu ay gumaganap bilang "x" at ang isa bilang "y".
  2. Ibawas sa nakatagong numero ang mga numerong bumubuo nito. Idagdag ang equation: (x*10+y)-(x+y)=9*x.
  3. Ang numero na lumabas bilang resulta ng mga kalkulasyon ay dapat tumuro sa isang tiyak na simbolo sa talahanayan.

Hindi mahalaga kung aling digit ang gaganap bilang "x", sa isang paraan o iba pa ay makakakuha ka ng isang character na ang numero ay magiging isang multiple ng siyam. Upang matiyak na mayroong isang character sa ilalim ng magkakaibang mga numero, tingnan lamang ang talahanayan at ang mga numerong 0,9,18,27,45,54,63,72,81 at ang susunod.

Ang sikreto ng larong "Magic Square"

Sigurado akong narinig mo na ang pariralang "magic square" sa isang lugar. Kilala natin ang ilang kinatawan ng "tribu" na ito. Ang pinakakaraniwan at madalas na matatagpuan sa Internet ay ang tinatawag na larong Magic Square. Ang kakanyahan nito ay nakasalalay sa katotohanan na ang iyong pansin ay iniimbitahan sa isang mesa (ito ang "magic square"), na may kakayahang "hulaan ang mga saloobin". Naturally, tulad ng anumang laro, mayroon itong ilang mga patakaran. Kinakailangang mag-isip ng anumang dalawang-digit na numero, at pagkatapos ay ibawas mula dito ang kabuuan na binubuo ng mga digit ng numerong ito. Hanapin ang resultang halaga sa talahanayan kasama ang simbolo na katumbas nito. At ang simbolong ito lamang ang hinuhulaan ang parisukat. Ang laro ay nakakatawa at, sa unang tingin, talagang kaakit-akit, dahil kahit na anong numero ang iniisip mo sa simula, ang parisukat ay palaging hulaan ang simbolo. Paano ito gumagana? Paano gumagana ang "magic square"? Sa katunayan, ang sagot ay nasa ibabaw. Kung susuriin mo ang parisukat nang maraming beses sa isang hilera, mapapansin mo na ang parehong simbolo ay nahuhulog sa lahat ng oras. Ang isang mas malapit na pagtingin sa talahanayan ay nagpapakita na ang simbolo na ito ay matatagpuan nang pahalang at ito ay tumutugma sa mga numerong nahahati sa 9 na walang natitira. Gayunpaman, ang mga ito lamang ang nakuha sa iyong sagot, kahit na anong dalawang-digit na numero ang iyong pipiliin. Masasabi nating nalantad na natin ang "magic square". Ang sikreto ay hindi namamalagi sa kanya tulad ng sa mga kondisyon ng laro. Ang katotohanan ay mayroong isang hindi mapag-aalinlanganang katotohanan na nagsasabing: "Kung ibawas mo ang kabuuan ng mga digit nito mula sa anumang dalawang-digit na numero, makakakuha ka ng isang numero na nahahati sa 9 nang walang natitira." Kaya naisip namin kung paano gumagana ang "magic square". Hindi isang onsa ng mistisismo! Bagaman, sa prinsipyo, ang lahat ng nauugnay sa mga numero ay batay sa mga kalkulasyon at pattern, at hindi sa magic.

Ang sikreto ng magic square:

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

Ang magic square ni Albrecht Dürer

Minsan ang mga digital na pattern ay nagkakaroon ng hindi kapani-paniwalang sukat na tila hindi pa nagagawa ang pangkukulam dito. Kaya, halimbawa, ang isa pang "magic square" ay kilala - Albrecht Dürer. Sa matematika, ito ay nauunawaan bilang isang parisukat na talahanayan na may parehong bilang ng mga hilera at haligi, na puno ng mga natural na numero. Bukod dito, ang kabuuan ng mga numerong ito nang pahalang, patayo o pahilis ay dapat na katumbas ng parehong resulta. Ang magic square ay dumating sa amin mula sa China, ngayon alam nating lahat ito maliwanag na kinatawan- Sudoku crossword. Sa Europa, si Dürer ang unang naglarawan ng isang "magic" figure sa kanyang ukit na "Melancholia". Ano ang kakaiba ng "magic square" na ito? Sa base nito, mayroon itong kumbinasyon ng mga numero 15 at 14, na tumutugma sa taon ng paglalathala ng ukit. At ang kabuuan ng mga numero ay binubuo hindi lamang ng mga hilera nang pahilis, patayo at pahalang, kundi pati na rin ang mga numerong nakatayo sa mga sulok ng parisukat, sa gitnang maliit na parisukat at sa bawat isa sa apat na selulang parisukat sa mga gilid nito. . Ang mga figure na ito ay hindi hinuhulaan ang kapalaran at hindi hulaan ang mga saloobin, sila ay natatangi nang tumpak sa kanilang mga pattern.

Square ng Pythagoras

Kung bumaling tayo sa pagsasabi ng kapalaran, mayroon ding kinatawan dito - ang "magic square" ng Pythagoras. Alam nating lahat ang pangalang ito mula sa mga aralin sa geometry. Ngunit sa ating panahon lamang ang taong ito ay nagsimulang tawaging isang matematiko at pilosopo. Noong unang panahon, siya ay kilala bilang isang guro ng karunungan, ang mga tula ay binubuo at ang mga odes ay inaawit tungkol sa kanya, siya ay sinasamba, itinuturing na isang tagakita. Itinatag ni Pythagoras ang isang bagong agham - numerolohiya, sa mga dating panahon ay kinikilala ito bilang isang relihiyon.

Naniniwala siya na maaaring ipaliwanag ng mga numero ang halos lahat ng kababalaghan, kabilang ang pagtukoy sa kapalaran ng isang tao, pagsasabi tungkol sa kanyang pagkatao, talento at kahinaan. Magagawa ito gamit ang parisukat ng Pythagoras. Paano gumagana ang "magic square" at ano ito? Ang magic square ng Pythagoras ay isang 3/3 square (row, column), kung saan ipinasok ang mga numero mula 1 hanggang 9. Ang petsa ng kapanganakan ng isang tao ay kinuha bilang batayan para sa hula. Mahalagang hindi lilitaw ang "0" sa mga kalkulasyon. Sa tulong ng mga simpleng kalkulasyon at formula, isang hanay ng mga numero ang nakuha, na pagkatapos ay dapat na ipasok sa isang parisukat. Ang bawat numero ay may sariling kahulugan at responsable para sa isang tiyak na pag-aari. Kaya, ang 4 ay "responsable" para sa kalusugan, at ang 9 ay para sa isip. Depende sa kung gaano karaming beses ang parehong numero ay nangyayari sa iyong parisukat, maaari mong sabihin ang tungkol sa pamamayani ng isa o ibang ari-arian. Kaya, halimbawa, ang kawalan ng 4 ay isang tagapagpahiwatig ng pisikal na kahinaan at pagkakasakit, at ang 444 ay isang tagapagpahiwatig ng mabuting kalusugan at kagalakan. Gaano katotoo ang parisukat ng Pythagoras, mahirap sabihin, gaya nga ng anumang panghuhula. Ngunit ngayon, alam kung paano gumagana ang magic square, maaari mong hindi bababa sa pumasa sa isang oras o dalawang kawili-wiling, pagkalkula ng mga character ng iyong mga kaibigan at mga kakilala.

"Magnet" para sa kayamanan, kalusugan at iba pang bagay...

Gumawa si Pythagoras ng isang magic square na may kakayahang "akitin" ang enerhiya ng kayamanan.

Siyanga pala, ginamit mismo ni Henry Ford ang Pythagorean square.
Tinunton niya ito sa isang dollar bill at palaging dinadala sa isang lihim na kompartamento ng kanyang pitaka bilang isang anting-anting.
Tulad ng alam mo, hindi nagreklamo si Ford tungkol sa kahirapan. Sa edad na 83, ibinigay ni Henry ang mga renda ng korporasyon at isang malaking kapalaran na $ 1 bilyon (nababagay para sa inflation - higit sa 36 bilyon sa kasalukuyang mga presyo) sa kanyang mga apo.

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

Ang mga numero na nakasulat sa isang parisukat sa isang espesyal na paraan ay hindi lamang makaakit ng kayamanan.

Halimbawa, ginawa ng mahusay na manggagamot na si Paracelsus ang kanyang parisukat - ang "anting-anting ng kalusugan."

Sa pangkalahatan, kung tama kang bumuo ng isang magic square, maaari mong bigyan ng buhay ang mga daloy ng enerhiya na kailangan mo.

Paano gumawa ng isang personal na anting-antingmagic square ng Pythagoras Sana magsulat ka ng mga numero at mabilang hanggang sampu?

Tapos sige. Gumuhit kami ng isang parisukat ng enerhiya na maaaring maging iyong personal na anting-anting.

Mayroon itong tatlong hanay at tatlong hanay. Mayroon lamang siyam na digit na bumubuo sa iyong indibidwal na numerological code.

Paano makalkula ang code na ito?

Ilagay sa unang hilera tatlong numero:

* numero ng iyong kaarawan,
* buwan ng kapanganakan
* ang taon ng kapanganakan.

Halimbawa, ipinanganak ka noong Mayo 25, 1971. Kung gayon ang iyong unang numero ay ang bilang ng araw: 25. Ito ay isang kumplikadong numero, ayon sa mga batas ng numerolohiya, dapat itong bawasan sa isang simple sa pamamagitan ng pagdaragdag ng mga numero 2 at 5. Lumalabas na - 7: gagawin natin ilagay ang pito sa unang cell ng parisukat.

Ang pangalawa ay ang bilang ng buwan: 5, dahil ang Mayo ang ikalimang buwan. Pakitandaan: kung ang isang tao ay ipinanganak noong Disyembre, iyon ay, sa buwan na numero 12, kailangan nating bawasan ang bilang sa isang simpleng numero: 1 + 2 = 3.

Ang pangatlo ay ang bilang ng taon. Narito ang lahat ay kailangang bawasan sa simple. Kaya: 1971 (taon ng kapanganakan) ay nabulok sa mga pinagsama-samang numero at kinakalkula namin ang kanilang kabuuan. 1+9+7+1 = 18, 1+8 =9.

Ipinasok namin ang mga numero sa unang hilera: 7, 5, 9.

Sa pangalawang hilera inilalagay namin ang mga numero:

* pang-apat - ang iyong pangalan,
* ikalimang - patronymic,
* ang ikaanim - mga apelyido.

Tinutukoy namin ang mga ito ayon sa talahanayan ng mga alphanumeric na sulat.


Ginagabayan nito, idinaragdag mo ang mga digital value ng bawat titik ng iyong pangalan, kung kinakailangan, dalhin ang kabuuan sa isang prime number.

Katulad nito, kumikilos kami nang may patronymic at apelyido.

Halimbawa, Moles= 3+9+7+2+7+3=31=3+1=4

Mayroon na tayong tatlong digit para sa pangalawang linya ng energy square.

Ikatlong hanay

Upang punan ang ikatlong hilera, upang mahanap ang ikapito, ikawalo at ikasiyam na numero, kailangan mong bumaling sa astrolohiya.

Ikapitong digit ay ang numero ng iyong zodiac sign.

Simple lang ang lahat dito. Ang Aries ang unang tanda, tumutugma ito sa numero 1. Ang Pisces ay ang ikalabindalawang tanda, tumutugma sila sa numero 12.

Pansin: sa kasong ito, ang dalawang-digit na mga numero ay hindi dapat bawasan sa mga simple, ang mga numero 10, 11 at 12 ay may sariling kahulugan!

Ikawalong digit- ang bilang ng iyong tanda ayon sa kalendaryong Silangan. Madaling mahanap ito sa talahanayan sa ibaba:

Ibig sabihin, kung ipinanganak ka noong 1974, ang iyong sign number ay 3 (Tiger), at kung noong 1982 - 11 (Dog).

Ikasiyam na digit- ang numerological code ng iyong pagnanais.

Halimbawa, nakakakuha ka ng enerhiya para sa kalusugan. Kaya ang pangunahing salita ay "kalusugan". Idinagdag namin muli ang mga titik ayon sa unang talahanayan:

Z - 9, D - 5, O - 7, P - 9, O - 7, B - 3, b - 3, E - 6 \u003d 49, iyon ay, 4 + 9 \u003d 13. Dahil muli kaming nakakuha ng kumplikadong numero, patuloy kaming binabawasan: 1 + 3 = 4

Tandaan: kung nakuha mo ang mga numero 10, 11 at 12, kung gayon sa kasong ito ay hindi sila dapat bawasan.

Buweno, kung wala kang sapat na pera, maaari mong kalkulahin ang kahulugan ng mga salitang "kayamanan", "pera" o partikular na "dolyar", "euro".

Kaya, ang huling ikasiyam na digit sa iyong magic square ay isang numero - ang numerological na halaga ng iyong keyword o, sa madaling salita, ang code ng pagnanais.

Kantahin ang iyong "square" meditation

At ngayon ayusin natin ang siyam na numero sa tatlong hanay ng tatlong numero sa ating magic square.

Ang iginuhit na parisukat ay maaaring i-frame at i-hang sa bahay o sa opisina.

At maaari mong ilagay ito sa iyong daddy at itago ito mula sa prying eyes. Makinig sa iyong panloob na boses, sinasabi nito sa iyo kung ano ang tama para sa iyo.

Ngunit hindi lang iyon. Alamin ang mga numero ng iyong personal na numerological code sa pagkakasunud-sunod ng mga ito sa mga cell.

Para saan? Ito ang iyong personal na mantra, ang iyong direktang linya sa Diyos, kung gugustuhin mo. Itinutuon ka nito sa nais na daloy mula sa isang malaking iba't ibang mga puwersa sa Uniberso, at sa kabilang banda, naririnig ka nila at tumutugon sa iyong mga panginginig ng boses.

Samakatuwid, kailangan mong matutunan ang iyong mantra sa pamamagitan ng puso. At upang magnilay.

Habang inuulit sa isip ang iyong numerological code, umupo sa komportableng upuan o humiga sa sofa. Magpahinga ka. Itaas ang iyong mga kamay, na parang tumatanggap ng enerhiya. Pagkaraan ng ilang sandali, madarama mo ang isang pangingilig sa iyong mga daliri, isang panginginig ng boses, maaaring init o, sa kabaligtaran, isang ginaw sa iyong mga palad.

Napakahusay: ang enerhiya ay nawala! Ang pagmumuni-muni ay tumatagal hanggang sa gusto mo itong ihinto, hanggang sa may pangangailangan na bumangon o ... hanggang sa makatulog ka.

Sa isang magic square, ang mga integer ay ipinamamahagi sa paraang ang kanilang kabuuan nang pahalang, patayo, at pahilis ay katumbas ng parehong numero, ang tinatawag na magic constant.

Ang magic square sa mga kultura ng mundo

Ang isang halimbawa ng magic square ay ang Lo Shu, na isang 3 by 3 table. Ang mga numero mula 1 hanggang 9 ay nakasulat dito sa paraang ang bawat row at diagonal ay nagdaragdag ng hanggang 15.

Isinalaysay ng isang alamat ng Tsino kung paano isang araw, sa panahon ng baha, sinubukan ng hari na gumawa ng isang kanal na maglilihis ng tubig sa dagat. Biglang lumitaw mula sa Lo River ang isang pagong na may kakaibang pattern sa shell nito. Ito ay isang grid na may mga numero mula 1 hanggang 9 na nakasulat sa mga parisukat. Ang kabuuan ng mga numero sa bawat panig ng parisukat, pati na rin sa dayagonal, ay 15. Ang bilang na ito ay tumutugma sa bilang ng mga araw sa bawat isa sa 24 na cycle ng Chinese solar year.

Ang Luo Shu square ay tinatawag ding magic square ng Saturn. Sa ibabang hilera ng parisukat na ito sa gitna ay ang numero 1, at sa kanang itaas na cell ang numero 2.

Ang magic square ay naroroon din sa iba pang mga kultura: Persian, Arabic, Indian, European. Nakuha ito sa kanyang ukit na "Mapanglaw" noong 1514 ng German artist na si Albrecht Dürer.

Ang mahiwagang parisukat sa ukit ni Durer ay itinuturing na una sa mga lumitaw sa kulturang sining ng Europa.

Paano malutas ang magic square

Ang magic square ay dapat lutasin sa pamamagitan ng pagpuno sa mga cell ng mga numero sa paraang ang kabuuan ng bawat linya ay isang magic constant. Ang gilid ng magic square ay maaaring binubuo ng pantay o kakaibang bilang ng mga cell. Ang pinakasikat na mga magic square ay binubuo ng siyam (3x3) o labing-anim (4x4) na mga cell. Mayroong isang malawak na iba't ibang mga magic square at mga pagpipilian para sa paglutas ng mga ito.

Paano lutasin ang isang parisukat na may pantay na bilang ng mga cell

Kakailanganin mo ang isang sheet ng papel na may 4x4 square na iginuhit sa mga ito, isang simpleng lapis at isang pambura.

Maglagay ng mga numero mula 1 hanggang 16 sa mga cell ng parisukat, simula sa itaas na kaliwang cell.

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

Ang magic constant ng parisukat na ito ay 34. Palitan ang mga numero sa diagonal na linya mula 1 hanggang 16. Para sa pagiging simple, palitan ang 16 at 1, at pagkatapos ay 6 at 11. Bilang resulta, ang mga numero sa dayagonal ay magiging 16, 11, 6, 1.

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

Pagpalitin ang mga numero sa ikalawang dayagonal na linya. Ang linyang ito ay nagsisimula sa 4 at nagtatapos sa 13. Pagpalitin ang mga ito. Ngayon ay palitan ang iba pang dalawang numero - 7 at 10. Mula sa itaas hanggang sa ibaba sa linya, ang mga numero ay isasaayos sa ganitong pagkakasunud-sunod: 13, 10, 7, 4.

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

Kung bibilangin mo ang kabuuan sa bawat linya, makakakuha ka ng 34. Gumagana ang paraang ito sa iba pang mga parisukat na may pantay na bilang ng mga cell.

Mayroong ilang iba't ibang mga klasipikasyon ng mga magic square.

ikalimang order, na idinisenyo upang kahit papaano ay gawing sistematiko ang mga ito. Nasa libro

Martin Gardner [GM90, pp. 244-345] inilalarawan ang isa sa mga pamamaraang ito -

ayon sa bilang sa gitnang parisukat. Ang pamamaraan ay kakaiba, ngunit wala nang iba pa.

Kung gaano karaming mga parisukat ng ikaanim na pagkakasunud-sunod ang umiiral ay hindi pa rin alam, ngunit mayroong humigit-kumulang 1.77 x 1019. Napakalaki ng bilang, kaya walang pag-asa na mabilang ang mga ito gamit ang kumpletong paghahanap, ngunit walang makakaisip ng formula para sa pagkalkula ng mga magic square.

Paano gumawa ng magic square?

Mayroong maraming mga paraan upang bumuo ng mga magic square. Ang pinakamadaling paraan upang gumawa ng mga magic square kakaibang ayos. Gagamitin natin ang pamamaraang iminungkahi ng Pranses na siyentipiko noong ika-17 siglo A. de la Louber (De La Loubère). Ito ay batay sa limang mga patakaran, ang pagpapatakbo na kung saan ay isasaalang-alang namin sa pinakasimpleng magic square 3 x 3 na mga cell.

Panuntunan 1. Ilagay ang 1 sa gitnang hanay ng unang hilera (Larawan 5.7).

kanin. 5.7. Unang numero

Panuntunan 2. Ilagay ang susunod na numero, kung maaari, sa cell na katabi ng kasalukuyang isa sa pahilis sa kanan at sa itaas (Larawan 5.8).

kanin. 5.8. Sinusubukang ilagay ang pangalawang numero

Panuntunan 3. Kung ang bagong cell ay lumampas sa parisukat sa itaas, pagkatapos ay isulat ang numero sa pinakailalim na linya at sa susunod na hanay (Larawan 5.9).

kanin. 5.9. Inilagay namin ang pangalawang numero

Panuntunan 4. Kung ang cell ay lumampas sa parisukat sa kanan, pagkatapos ay isulat ang numero sa pinakaunang hanay at sa nakaraang linya (Larawan 5.10).

kanin. 5.10. Inilagay namin ang pangatlong numero

Panuntunan 5. Kung ang cell ay okupado na, pagkatapos ay isulat ang susunod na numero sa ilalim ng kasalukuyang cell (Larawan 5.11).

kanin. 5.11. Inilagay namin ang pang-apat na numero

kanin. 5.12. Inilagay namin ang ikalima at ikaanim na numero

Sundin muli ang Mga Panuntunan 3, 4, 5 hanggang sa makumpleto mo ang buong parisukat (Fig.

Hindi ba, ang mga patakaran ay napaka-simple at malinaw, ngunit medyo nakakapagod pa ring ayusin ang kahit 9 na numero. Gayunpaman, alam ang algorithm para sa pagtatayo ng mga magic square, madali nating ipagkatiwala ang computer sa lahat ng nakagawiang gawain, na iniiwan lamang ang ating sarili sa malikhaing gawain, iyon ay, pagsulat ng isang programa.

kanin. 5.13. Punan ang parisukat ng mga sumusunod na numero

Project Magic squares (Magic)

Field set para sa programa mga magic square medyo halata:

// PROGRAMA PARA SA HENERASYON

// ODD MAGIC SQUARE

// SA PAMAMARAAN NG DE LA LOUBERT

pampublikong partial class Form1 : Form

//Max. parisukat na sukat: const int MAX_SIZE = 27; //var

intn=0; // square order int [,] mq; // magic square

int number=0; // kasalukuyang numero sa parisukat

intcol=0; // kasalukuyang column int row=0; // kasalukuyang linya

Ang paraan ng de la Louber ay angkop para sa paggawa ng mga kakaibang parisukat sa anumang laki, kaya maaari naming hayaan ang gumagamit na piliin ang pagkakasunud-sunod ng parisukat, habang makatuwirang nililimitahan ang kalayaan sa pagpili sa 27 mga cell.

Matapos pinindot ng user ang gustong buton btnGen Generate! , ang paraan ng btnGen_Click ay lumilikha ng isang array upang mag-imbak ng mga numero at pumasa sa paraan ng pagbuo:

// Pindutin ang "GENERATE" BUTTON

pribadong void btnGen_Click(tagapadala ng object, EventArgs e)

//order ng parisukat:

n = (int)udNum.Value;

//lumikha ng array:

mq = bagong int ;

//generate magic square: generate();

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

Dito nagsisimula kaming kumilos ayon sa mga patakaran ng de la Louber at isulat ang unang numero - isa - sa gitnang cell ng unang hilera ng parisukat (o array, kung gusto mo):

//Bumuo ng magic square void generate()(

//unang numero: numero=1;

//column para sa unang numero - gitna: col = n / 2 + 1;

//line para sa unang numero - ang una: row=1;

//square it: mq= number;

Ngayon sunud-sunod naming idagdag ang natitirang mga cell sa mga cell - mula dalawa hanggang n * n:

// lumipat sa susunod na numero:

Naaalala namin, kung sakali, ang mga coordinate ng aktwal na cell

int tc=col; int tr = hilera;

at lumipat sa susunod na cell nang pahilis:

Sinusuri namin ang pagpapatupad ng ikatlong panuntunan:

kung (row< 1) row= n;

At pagkatapos ay ang ikaapat:

kung (col > n) ( col=1;

goto rule3;

At panglima:

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

row=tr+1; goto rule3;

Paano natin malalaman na mayroon nang numero sa cell ng parisukat? - Napakasimple: maingat naming isinulat ang mga zero sa lahat ng mga cell, at ang mga numero sa natapos na parisukat ay mas malaki kaysa sa zero. Kaya, sa pamamagitan ng halaga ng elemento ng array, matutukoy namin kaagad kung ang cell ay walang laman o mayroon nang isang numero! Pakitandaan na dito kailangan namin ang mga cell coordinates na naalala namin bago maghanap para sa cell para sa susunod na numero.

Maaga o huli, makakahanap tayo ng angkop na cell para sa numero at isulat ito sa kaukulang array cell:

//kuwadrado ito: mq = numero;

Subukan ang isa pang paraan upang ayusin ang pagsusuri ng pagiging matanggap ng paglipat sa

wow cell!

Kung ang numerong ito ang huli, natupad ng programa ang mga obligasyon nito, kung hindi man ay kusang-loob itong magpapatuloy upang ibigay sa cell ang sumusunod na numero:

//kung hindi lahat ng mga numero ay nakatakda, kung gayon kung (number< n*n)

//pumunta sa susunod na numero: goto nextNumber;

At ngayon ang parisukat ay handa na! Kinakalkula namin ang magic sum nito at i-print ito sa screen:

) //generate()

Ang pag-print ng mga elemento ng isang array ay napaka-simple, ngunit mahalagang isaalang-alang ang pagkakahanay ng mga numero ng iba't ibang "haba", dahil ang isang parisukat ay maaaring maglaman ng isa, dalawa, at tatlong digit na numero:

//I-print ang magic square void writeMQ()

lstRes.ForeColor = Kulay .Itim;

string s = "Magic sum = " + (n*n*n+n)/2; lstRes.Items.Add(s);

lstRes.Items.Add("" );

// i-print ang magic square: para sa (int i= 1; i<= n; ++i){

s="" ;

para sa (int j= 1; j<= n; ++j){

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

lstRes.Items.Add(s);

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

Inilunsad namin ang programa - ang mga parisukat ay nakuha nang mabilis at nagpipista para sa mga mata (Fig.

kanin. 5.14. Medyo isang parisukat!

Sa aklat ni S. Goodman, S. Hidetniemi Panimula sa pagbuo at pagsusuri ng mga algorithm

mov , sa mga pahina 297-299 mahahanap natin ang parehong algorithm, ngunit sa isang "binawasan" na pagtatanghal. Hindi ito kasing "transparent" gaya ng aming bersyon, ngunit gumagana ito nang tama.

Magdagdag ng button btnGen2 Bumuo ng 2! at isulat ang algorithm sa wika

C-sharp sa paraan ng btnGen2_Click:

//Algorithm ODDMS

pribadong void btnGen2_Click(tagapadala ng object, EventArgs e)

//order ng parisukat: n = (int )udNum.Value;

//lumikha ng array:

mq = bagong int ;

//bumuo ng magic square: int row = 1;

int col = (n+1)/2;

para sa (int i = 1; i<= n * n; ++i)

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

if (row == 1) row = n;

kung (col == n) col = 1;

//square completed: writeMQ();

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

Na-click namin ang pindutan at tinitiyak na nabuo ang "aming" mga parisukat (Fig.

kanin. 5.15. Lumang algorithm sa isang bagong anyo


malapit na