ಮಾಯಾಚೌಕವನ್ನು ರಚಿಸುವ ಎರಡು ವಿಧಾನಗಳು

ಮಾಯಾಚೌಕವನ್ನು ರಚಿಸುವ ಎರಡು ವಿಧಾನಗಳು

Comments

ಬರಹ

ªÀiÁAiÀiÁZËPÀ: ªÀiÁAiÀiÁZËPÀªÉAzÀgÉ ZËPÁPÁgÀzÀ°è ¸ÀASÉåUÀ¼À£ÀÄß GzÀݪÁV PÀÆrzÀgÀÆ, CqÀتÁV PÀÆrzÀgÀÆ ºÁUÀÆ JgÀqÀÆ PÀtðUÀ¼À ¢QÌ£À°è PÀÆrzÀgÀÆ MAzÉà ªÉÆvÀÛ §gÀĪÀAvÉ 1¾ôAzÀ ªÀiÁAiÀiÁZËPÀzÀ DPÁgÀzÀ ªÀUÀðzÀªÀgÉV£À ¸ÀASÉåUÀ¼À£ÀÄß eÉÆÃr¸ÀĪÀÅzÀÄ. ¸ÀªÀÄ DPÁgÀzÀ ªÀiÁAiÀiÁZËPÀPÉÌ C£Àé¬Ä¸ÀĪÀ ¸ÁªÀiÁ£Àå ¤AiÀĪÀÄ«®è. DzÀgÉ ¨É¸À DPÁgÀPÉÌ ¸ÁªÀiÁ£Àå ¤AiÀĪÀÄ gÀƦ¸À§ºÀÄzÀÄ. CAzÀgÉ ªÀiÁAiÀiÁZËPÀzÀ DPÁgÀ 1, 3, 5, 7 EvÁå¢ ¨É¸À¸ÀASÉåAiÀiÁVzÁÝUÀ ¸ÁªÀiÁ£Àå¤AiÀĪÀĪÀ£ÀÄß C£Àéಯಿ¸À§ºÀÄzÀÄ. £Á£ÀÄ F ¨É¸À ªÀiÁAiÀiÁZËPÀPÉÌ ¸ÀA§A¢ü¹zÀAvÉ JgÀqÀÄ «zsÁ£ÀzÀ ªÀiÁAiÀiÁZËPÀ gÀZÀ£ÉAiÀÄ£ÀÄß «ªÀj¸ÀÄvÉÛãÉ. ºÁUÀÆ F ¤AiÀĪÀĪÀ£ÀÄß UÀtPÀAiÀÄAvÀæPÉÌ C¼ÀªÀr¸ÀĪÀAvÉ C++ ªÀÄvÀÄÛ Pascal programUÀ¼À£ÀÄß G¯ÉèÃT¸ÀÄvÉÛãÉ. PÁPïìlgï «zsÁ£À:- F «zsÁ£ÀzÀ°è MAzÀÄ jÃwAiÀÄ eÉÆÃqÀuÉAiÀÄ£ÀÄß «ªÀj¸ÀÄvÉÛãÉ. 5X5 ªÀiÁAiÀiÁZËPÀªÀ£ÀÄß GzÁºÀgÀuÉAiÀiÁV vÉUÉzÀÄPÉƼÉÆîÃt. ªÀÄzsÀåzÀ CqÀظÁ®Ä ºÁUÀÆ PÉÆ£ÉAiÀÄ GzÀݸÁ®Ä £ÀªÀÄä ªÉÆzÀ® ¸ÀASÉåAiÀÄ£ÀÄß vÀÄA§ÄªÀ ªÀÄ£É (CAzÀgÉ ªÀÄ£É[3, 5] ªÉÆzÀ® ªÀÄ£É). E°è 1 £ÀÄß vÀÄA¨ÉÆÃt. »ÃUÉ vÀÄA©zÀ £ÀAvÀgÀ ¸ÀASÉå 2 £ÀÄß vÀÄA§®Ä JgÀqÀ£Éà PÀtðzÀ (Secondary diagonal) ¢QÌ£À°è ºÉƾªÀÄÄRªÁV ªÀÄÄAzÀĪÀgÉAiÉÆÃt (¨ÁtzÀ UÀľÄw£À ¢QÌ£À°è) ZÀ°¸ÉÆÃt. CAzÀgÉ 2£ÀÄß vÀÄA§ÄªÀ ªÀÄ£É ªÀÄ£É[2, 6] DUÀÄvÀÛzÉ. DzÀgÉ EzÀÄ 5X5 ªÀiÁAiÀiÁZËPÀªÁVgÀĪÀÅzÀ¾ôAzÀ £ÀªÀÄUÉ GzÀݸÁ®Ä EgÀĪÀÅ¢®è. ºÁUÁV CzÉà CqÀظÁ°£À°è CAzÀgÉ 2£Éà CqÀØݸÁ°£À°è 1£Éà GzÀݸÁ°£À°è CAzÀgÉ ªÀÄ£É[2, 1]¾°è 2£ÀÄß vÀÄA© ¥ÀÅ£ÀB JgÀqÀ£Éà PÀtðzÀ ¢QÌ£À°è ªÀÄÄA¢£À ¸ÀASÉåAiÀÄ£ÀÄß vÀÄA¨ÉÆÃt. GzÀÝ CxÀªÁ CqÀØ ¸Á°£À°è ªÀÄ£É DPÁgÀªÀ£ÀÄß ಮೀಱಿದರೆ PÉÆ£ÉAiÀÄ GzÀÝPÉÌ ºÁUÀÆ ªÉÆzÀ® CqÀØPÉÌ ºÉÆÃUÉÆÃt. »ÃUÉ ºÉÆÃUÀĪÁUÀ ªÀÄÄA¢£À ªÀÄ£É FUÁUÀ¯Éà vÀÄA©zÀÝgÉ MAzÀÄ GzÀÝ »AzÀPÉÌ §AzÀÄ ¥ÀÅ£ÀB JgÀqÀ£Éà PÀtðzÀ ¢QÌ£À°è ¸ÀASÉåUÀ¼À£ÀÄß 25¾ªÀgÉUÉ (F GzÁºÀgÀuÉUÉ) vÀÄA§ÄvÁÛ ºÉÆÃzÀgÉ PÁPïìlgï ªÀiÁzÀjAiÀÄ°è ªÀiÁAiÀiÁZËPÀ ¹zÀÞªÁUÀÄvÀÛzÉ. EzÀPÉÌ avÀæ 1£ÀÄß £ÉÆÃr.avÀæ 1

9 3 22 16 15
2 21 20 14 8
25 19 13 7 1
18 12 6 5 24
11 10 4 23 17

 

EzÀPÉÌ C++ ªÀÄvÀÄÛ Pascal programUÀ¼ÀÄ F jÃw EªÉ.

 #include <iostream.h> #include <iomanip.h> #include <conio.h> void coxeter(int n) { int i, inext, j, jnext, k, u, arr[20][20]; for (i=0; i<n; i++) for (j=0; j<n; j++) arr[i][j]=0; u=n*n; i=(n-1)/2; j=n-1; for (k=1; k<=u; k++) { arr[i][j]=k; inext=i>0?i-1:n-1; jnext=j<n-1?j+1:0; if (arr[inext][jnext]) j--; else { i=inext; j=jnext;} } cout << "Magic Square by Coxeter Method is " << endl; for (i=0; i<n; i++) { for (j=0; j<n; j++) cout << setw(5) << arr[i][j]; cout << endl; } } void main() { int n; do { cout << "Enter a positive odd integer :"; cin >> n; } while (n<0 || !(n%2)); cout << endl; coxeter(n); getch(); } Pascal program: program xx; uses crt; var n:integer; procedure coxeter(n:integer); var i, inext, j, jnext, k, u:integer; arr: array[1..20, 1..20] of integer; begin for i:=1 to n do for j:= 1 to n do arr[i,j]:=0; u:=n*n; i:=(n+1) div 2; j:=n; for k:= 1 to u do begin arr[i,j]:=k; if (i>1) then inext:=i-1 else inext:=n; if (j<n) then jnext:=j+1 else jnext:=1; if (arr[inext, jnext]<>0) then j:=j-1 else begin i:=inext; j:=jnext end end; Writeln('By Coxeter Method'); for i:= 1 to n do begin for j:= 1 to n do write(arr[i, j]:5); writeln end; end; begin {Main} repeat Write('A positive odd integer :') ; readln(n) until (n>=0) and (n mod 2<>0); coxeter(n); repeat until keypressed end.  ¨ÉZÉmï «zsÁ£À: F «zsÁ£ÀzÀ°è MAzÀÄ PÀæªÀÄzÀ°è ªÀÄzsÀåzÀ CqÀظÁ®Ä ºÁUÀÆ ªÀÄzsÀåzÀ GzÀݸÁ°VAvÀ MAzÀÄ ªÀÄ£É §®zÀ°ègÀĪÀ ªÀÄ£ÉAiÀÄ°è CAzÀgÉ ªÀÄ£É[3, 4]¾°è 1 £ÀÄß vÀÄA¨ÉÆÃt. E®Æè »ÃUÉ vÀÄA©zÀ £ÀAvÀgÀ ¸ÀASÉå 2 £ÀÄß vÀÄA§®Ä JgÀqÀ£Éà PÀtðzÀ (Secondary diagonal) ¢QÌ£À°è ºÉƾªÀÄÄRªÁV ªÀÄÄAzÀĪÀgÉAiÉÆÃt (¨ÁtzÀ UÀľÄw£À ¢QÌ£À°è) ZÀ°¸ÉÆÃt. CAzÀgÉ 2£ÀÄß ªÀÄ£É[2, 5]¾°è vÀÄA¨ÉÆÃt. ªÀÄÄA¢£À ¸ÀASÉå 3£ÀÄß vÀÄA§ÄªÀ ªÀÄ£É ªÀÄ£É[1, 6] DUÀÄvÀÛzÉ. DzÀgÉ EzÀÄ 5X5 ªÀiÁAiÀiÁZËPÀªÁVgÀĪÀÅzÀ¾ôAzÀ £ÀªÀÄUÉ GzÀݸÁ®Ä EgÀĪÀÅ¢®è. ºÁUÁV ªÀÄ£É[1,1]¾°è 3£ÀÄß vÀÄA¨ÉÆÃt. ¥ÀÅ£ÀB JgÀqÀ£Éà PÀtðzÀ ¢QÌ£À°è ªÀÄÄA¢£À ¸ÀASÉåAiÀÄ£ÀÄß vÀÄA¨ÉÆÃt. GzÀÝ CxÀªÁ CqÀØ ¸Á°£À°è ªÀÄ£É DPÁgÀªÀ£ÀÄß «ÄÃಱಿzÀgÉ PÉÆ£ÉAiÀÄ GzÀÝPÉÌ ºÁUÀÆ ªÉÆzÀ® CqÀØPÉÌ ºÉÆÃUÉÆÃt. »ÃUÉ vÀÄA§ÄªÁUÀ FUÁUÀ¯Éà vÀÄA©zÀ ªÀÄ£É ¹PÀÌgÉ ¥ÀæªÀiÄS PÀtðzÀ ¢QÌ£À°è (Main diagonal) MAzÀÄ ªÀÄ£É ªÀÄÄAzÀĪÀgÉzÀÄ ªÀÄÄA¢£À ¸ÀASÉåAiÀÄ£ÀÄß D ªÀÄ£ÉAiÀÄ°è vÀÄA© ¥ÀÅ£ÀB JgÀqÀ£Éà PÀtðzÀ (Secondary diagonal) ¢QÌ£À°è ZÀ°¸ÀÄvÁÛ ¸ÀASÉåUÀ¼À£ÀÄß 25¾ªÀgÉUÉ(F GzÁºÀgÀuÉAiÀÄ°è) vÀÄA§ÄvÁÛ ºÉÆÃzÀgÉ ¨ÉZÉmï «zsÁ£ÀzÀ°è ªÀiÁAiÀiÁZËPÀ vÀAiÀiÁgÁUÀÄvÀÛzÉ. EzÀPÉÌ avÀæ 2£ÀÄß £ÉÆÃr. avÀæ 2.

 3 16 9 22 15
20 8 21 14 2
7 25 13 1 19
24 12 5 18 6
11 4 17 10 23

 

EzÀPÉÌ C++ ªÀÄvÀÄÛ Pascal programUÀ¼ÀÄ F jÃw EªÉ.

 #include <iostream.h> #include <iomanip.h> #include <conio.h> void bachet(int n) { int i,j, k, u, arr[20][20]; for (i=0; i<n; i++) for (j=0; j<n; j++) arr[i][j]=0; u=n*n; i=(n-1)/2; j=i+1; for (k=1; k<=u; k++) { i=i<0?n-1:i; i=i>n-1?0:i; j=j<0?n-1:j; j=j>n-1?0:j; arr[i][j]=k; i--; j++; i=i<0?n-1:i; i=i>n-1?0:i; j=j<0?n-1:j; j=j>n-1?0:j; if (arr[i][j]) { i++; j++;} } cout << "Magic Square by Bachet Method is " << endl; for (i=0; i<n; i++) { for (j=0; j<n; j++) cout << setw(5) << arr[i][j]; cout << endl; } } void main() { int n; do { cout << "Enter a positive odd integer :"; cin >> n; } while (n<0 || !(n%2)); cout << endl; bachet(n); getch(); } Pascal program: program xx; uses crt; var n:integer; procedure bachet(n:integer); var i, j, k, u:integer; arr:array[1..20, 1..20] of integer; begin for i:=1 to n do for j:= 1 to n do arr[i,j]:=0; i:=(n+1) div 2; j:=i+1; u:=n*n; for k:=1 to u do begin if (i>n) then i:=1 else if (i<1) then i:=n; if (j>n) then j:=1 else if (j<1) then j:=n; arr[i,j]:=k; i:=i-1; j:=j+1; if (i>n) then i:=1 else if (i<1) then i:=n; if (j>n) then j:=1 else if (j<1) then j:=n; if (arr[i,j]<>0) then begin i:=i+1; j:=j+1 end end; writeln('Bachet Method'); for i:= 1 to n do begin for j:= 1 to n do write(arr[i,j]:5); writeln end end; begin repeat Write('A positive odd integer :') ; readln(n) until (n>=0) and (n mod 2<>0); bachet(n); repeat until keypressed end.  

‍ನಿಮಗೆ ಈ ಬರಹ ಇಷ್ಟವಾಯಿತೇ? ತಿಳಿಸಿ
No votes yet
Rating
No votes yet