Project 2 - Magic Squares

design2.txt - due 12/7 before 11:59 PM
project2 - due 12/13, before 11:59 PM

Orginally by Sue Evans

Hit the space bar for next page



The Objectives


The purpose of this assignment is to give you practice with:

recursion
using command line arguments
using the timing feature
and file handling.


The Background

According to The Math Forum @ Drexel University, A Magic
Square is an arrangement of the numbers 1 to n2 in an n x n
matrix with each number occuring exactly once, and such that
the sum of the entries of any row, any column, or any main
diagonal is the same. It is not hard to show that this sum
is n(n2 + 1)/2.

The simplest magic square is the 1 x 1 magic square whose
only entry is the number 1.

1

The next simplest is the 3 x 3 magic square.

(8 + 1 + 6) or 3(32 + 1)/2
This is also just ONE of many examples for a 3 x 3 Magic
Square!!

This 3 x 3 square is definitely magic and satisfies the
definition given above. There are 8 different arrangements
of entries in a 3 x 3 matrix that fit the definition of a
magic square. There are also magic squares of size 4 x 4, 5
x 5, etc.



The Background - Continued

For small n, say n <= 3, you could obviously sit down with
pencil and paper and discover a magic square in a fairly
short amount of time.
Take a few minutes now and do that, remembering that each of
the numbers, 1 through n2, appear only once in the square.

Now try it for n = 4 ...

Oh, there has to be a better way. :)

Of course, the computer doesn't have a patience problem. It
can solve the problem for us by using the brute force
method. This means that the computer will accomplish its
task by trying every single possible arrangement of the
numbers in a square and check each of the resulting squares
to see if it's a magic square.
[6, 2, 7, 5, 4, 8, 3, 9, 1]
[4, 2, 7, 6, 5, 8, 3, 9, 1]
[7, 4, 2, 6, 5, 8, 3, 9, 1]
...


The Task

Your assignment will be to determine all of the magic
squares when given an n, display permutations that match the
magic squares to the screen AND write it to a file.

You will only test when n == 3!!! But code it for n of ANY
number!!
It turns out that finding the magic squares for n >= 4 takes
too long for us to run it on the shared machines (linux1, 2
& 3)
Since if n == 1, the square is 1 (too easy!!)
and since for n == 2 there is no answer!!
Your program must come up with every possible arrangement
(permutation) of numbers within the square. These are known
as the permutations of that list of numbers. Each
permutation needs to be checked to see if it has formed a
magic square.


Program Requirements

Your program must:
use command line arguments. At the command line the user
must enter (in this order):
the name of the executable file,
n (which will ALWAYS be 3, but again could be run with other
numbers)
and the name of the output file in which to write the
squares.
use a recursive permute to give all of the permutations of
the square.
In other words, your function called "permute", must be a
recursive function.
So for each permutation, you should check to see if it is a
magic square, display it and write it to the file
write only the unique magic squares to the SCREEN and FILE.
No duplicates allowed.
HINT: Let your program produce duplicates first, then see
how you can refrain from writing the duplicates.
Then modify your code.
use a list of size n2.
The code for the recursive permute function will be much
easier to write if you store the numbers in a list
rather than a two-dimensional list (or array) of size n x n.
How you print the data is not related.
[6, 2, 7, 5, 4, 8, 3, 9, 1, ....] (size to n2)
[4, 2, 7, 6, 5, 8, 3, 9, 1, ....]
[7, 4, 2, 6, 5, 8, 3, 9, 1, ....]
...
close any files that you have opened as soon as you have
finished using them.
Time how long your program takes to find the magic square
and print that time at the end of the SAME file.


Sample Run


Here is a sample of output of this program. Please note that
the sample output only shows what is expected from your
program if the user is actually entering everything as
instructed. This is not a test of the program at all, but
just a sample for your clarification.
2 7 6
9 5 1
4 3 8

2 9 4
7 5 3
6 1 8

4 3 8
9 5 1
2 7 6

4 9 2
3 5 7
8 1 6

6 1 8
7 5 3
2 9 4

6 7 2
1 5 9
8 3 4

8 1 6
3 5 7
4 9 2

8 3 4
1 5 9
6 7 2

Total running time: 4.76 seconds.


No Answer is Posted For this Question
Be the First to Post Answer

Post New Answer

More Sciences AllOther Interview Questions

Which wave phenomenon is not common to both light and sound waves?

1 Answers  


plz send me sylyabus model quetion paper for drug inspector exam

0 Answers  


Five iportant parameters in transducer operation.( help me with correct ans.)

0 Answers  


If E = 5, what number does SPEED represent?

1 Answers  


If Nasa where to sink a large tube down a few miles into one of the deepest parts of the ocean or a spiral tube not so deep. Then fit electromagnetic monorail running gear to a sledge and then put a space cargo vehicle inside the sledge. With ball valves to compartmentalise the tube off to keep a constant pressure with inert gases as the space shuttle accelerates using electromagnetism to gain altitude and then loses the sledge. Next fires it's main rocket engines to carry on up to space. Would this idea work and would it save money on fuel if the space cargo vehicles where only say 5 ton cargo holds. Also they could be reusable with their rocket engines.

0 Answers  






If 2 is a prime no , then write a C program to test a number is prime or not

0 Answers  


what is Not necessary for precipitation? A. cold weather B. evaporation C. condensation D. the sun's energy

1 Answers  


bakit,kailan po ba lumalaki at lumiliit ang tubig sa dagat??at saan naman po ito kumukuha ng tubig para ito ay lalaki??

0 Answers  


If you eventually employed, what would be your contributions / roles with the company?

1 Answers   Royal Lancaster Hotel,


what is harmonic distortion?what is the use of it.in ce amplifiers

0 Answers  


hi i am in final year of msc electronics.i am interested in space research.but i dont know which stations offering if any one has an idea please tell me the details. thank you

0 Answers  


interview just dial market line

0 Answers   Just Dial,


Categories