home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
GAMES
/
MAGIC28.ZIP
/
MAGIC.DOC
next >
Wrap
Text File
|
1994-01-22
|
3KB
|
63 lines
MAGIC - Magic Squares, Version 2.8 (1/22/94), Copyright (c) 1988-1994 by
Gordon C. Everstine, 15803 Lautrec Court, Gaithersburg, MD 20878
Telephone: 301-977-0936
One mathematical amusement which has fascinated people for centuries is the
magic square, a square array (or matrix) of numbers having the property that
the sum of the entries in any row, column, or main diagonal is always the same.
For example, a magic square of order 6 is
31 2 3 34 5 36
30 26 9 10 29 7
24 23 16 15 14 19
13 17 22 21 20 18
12 8 28 27 11 25
1 35 33 4 32 6
For this array, the sum of any row, column, or main diagonal is 111. Although
magic squares are mathematical curies, their fascination has perhaps resulted
from the symmetry and order which they possess.
Normally, interest in magic squares is restricted to those formed from the
first N*N positive integers, where N is the order (or size) of the square. The
reason for this seemingly restricted interest is that squares having negative
or fractional numbers offer no additional generality, because such squares can
always be transformed into positive integer squares by adding or multiplying
every entry by a suitable constant.
The IBM PC program which accompanies this text file computes magic squares for
any order square between 3 and 170. The upper limit of 170 is not a limitation
of the algorithms, which are fully general, but of the memory available in
Basic, because the program stores the entire square in an array. Squares of
order 2 do not exist; order 1 is trivial.
Odd and even order squares must be constructed by different approaches. For
odd orders, the program uses a recursive scheme devised by de la Loubere about
300 years ago. For even orders, the program uses the Devedec algorithm. Even
orders not divisible by 4 are formed slightly differently from those which are
divisible by 4 (doubly even).
The program displays magic squares of order up to 20 in the same way that the
example of order six was displayed above. For larger squares, a row will not
fit on one line of the (80-column) screen, so that each row of the square is
displayed on several lines of the screen. Squares may also be printed; for
larger squares, fan-fold paper is required, since the program prints the square
in several long blocks which can be arranged side-by-side. Squares may also be
written to a file (MAGIC.OUT); each request to write to file appends the
current square to the end of the file.
The correctness of a square may be optionally checked. This check is primarily
to verify that the program has not been corrupted during copying or
downloading.
The time required to calculate a magic square is roughly proportional to N*N,
the square of the order. However, this implementation is efficient enough that
most squares are computed essentially instantaneously. The square of order 170
requires about four seconds on an IBM XT. The checking of a square takes
longer than the calculation, since sums must be accumulated in double
precision.
For more information about magic squares, see, for example, "Magic Squares and
Cubes" by W.S. Andrews (The Open Court Publishing Co., Chicago, 1908) and
"Mathematical Recreations" by M. Kraitchik (Dover, 1953).