Display permutations that match the magic squares


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. 

Request for Solution File

Ask an Expert for Answer!!
Basic Computer Science: Display permutations that match the magic squares
Reference No:- TGS0116913

Expected delivery within 24 Hours