Magic Squares
10-22-2017, 03:34 PM
Post: #1
 Eddie W. Shore Senior Member Posts: 1,146 Joined: Dec 2013
Magic Squares

Background

A magic square is a square of integers where each row, column, and diagonal have the same sum. For example:

2 9 4
7 5 3
6 1 8

Each row, column, and diagonal of this magic square has a sum of 15.

A proper magic square has the integers 1 through n^2, n is the size of the magic square. A non-normal magic square follows the sum rule, but different integers than the 1 to n^2 sequence is allowed.

The program MAGICSQ3 generates random 3 x 3 non-normal magic squares. The sum of each row, column, and diagonal are given.

HP Prime Program: MAGICSQ3
Code:
 EXPORT MAGICSQ3() BEGIN // Random Magic Square 3 X 3 // 2017-10-06 EWS LOCAL x,k,r,mat,s,t,l; // Initialization r:=RANDINT(−5,200); k:=RANDINT(1,3); l:=MAKELIST(k*X,X,r-4*k, r+4*k,k); l:=SORT(l); s:=ΣLIST(l); t:=s/3; mat:=MAKEMAT(0,3,3); // Generation mat(2,2):=l(5); mat(1,1):=l(1);  mat(3,3):=l(9); mat(1,3):=l(2); mat(3,1):=l(8); mat(1,2):=t-mat(1,1)-mat(1,3); mat(2,1):=t-mat(1,1)-mat(3,1); mat(2,3):=t-mat(1,3)-mat(3,3); mat(3,2):=t-mat(3,1)-mat(3,3); // Tranpose? IF RANDINT(0,1) THEN mat:=TRN(mat); END; // Results RETURN {mat,t}; END;
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)