Your Perfect Assignment is Just a Click Away
We Write Custom Academic Papers

100% Original, Plagiarism Free, Customized to your instructions!

glass
pen
clip
papers
heaphones

Recall that a magic square is a 2-dimensional square array with n rows and n columns where each row,
col, and diagonal add

Recall that a magic square is a 2-dimensional square array with n rows and n columns where each row,
col, and diagonal add

Recall that a magic square is a 2-dimensional square array with n rows and n columns where each row,
col, and diagonal add up to the same value. The value that every row, column, and diagonal adds up to is
called the magic sum. For example, here is a magic square for the case n = 4 with a magic sum of 34:
 6 10  7 11  3  8  9 14 12  1 16  5 13 15  2  4
If a size n magic square contains all of the number from 1 to n2 exactly once (as in the example above) we
call this a standard magic square and it is not hard to show that the magic sum of a standard size n magic
square is n×(n2 +1)
2 .
You are to write a program that will find standard magic squares in three different ways, by
implementing the following 3 algorithms.
Purely random. Randomly put the numbers from 1 to n2 into an n × n array and then check to see if it is
a magic square. Fill the array from top to bottom, left to right order. In other words, first fill the first row
from left to right, then the second row, etc. Do this repeated until either a magic square is found or some
limit for the number of tries is reached. The limit will be a parameter to your magic square method.
The hardest part of implementing this is finding an efficient way to it. For example, in the 4 × 4 case,
how do we get the numbers from 1 to 16 randomly into the array? The way I did it was to create a 16
element array (in general you will create a n × n array) and put the numbers from 1 to 16 into that array. I
then randomly found one of the 16 elements, put it into the magic square array, and switched that element to
the end of the array so that I would never use it again. For the next step I randomly selected an element from
the first 15 spots in the array, put that in the magic sum array, and then swapped it so that it is 1 from the end
of the array.
Here’s how the example above got started. Let’s call my 16-element array num. It starts looking like this:
num: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
The algorithm found a random location in the 16-element array, in this case it’s location 5 with value 6, put
the 6 in the first position of the magic square and then swapped that 6 with 16 at the end of the num array,
giving us:
num: 1 2 3 4 5 16 7 8 9 10 11 12 13 14 15 6
Next the algorithm found a random location in the first 15 spots of num, in this case it was 10 which was  
then put into the magic square and moved to the right of num giving us:
num: 1 2 3 4 5 16 7 8 9 15 11 12 13 14 10 6
Continue this until the entire magic square array is filled.
If you have an alternative way for doing this bring it up in a Discussion.
For finding random numbers you can either use Math.random or the Random class. Look these up in the
Java docs here and here. I think the Random class is easier to use but just be sure not to instantiate too many
Random objects. You only need 1.

Last element of each row not random. This algorithm is the same as the purely random algorithm
except when placing an element at the end of the row do not choose randomly but select the only element
that works based on the magic sum. Looking at the 4 × 4 example above, the algorithm would have chosen
6, 10, and 7 randomly but now the only number that will work for the last spot is 11, so simply place that
number in that spot in the array. The implementation of this is going to be similar to the purely random one,
but you will need some addition code or methods to find the number for that last spot of each row. Don’t
forget that it might not always be possible to find that last value. For example, suppose the first 3 random
values put in the magic square array are 2, 3, and 5. Since the magic sum of a 4 × 4 array is 34 we would
need the value 24, but the largest number available is 16.
You should notice that this algorithm finds solutions much faster than the purely random one. In fact, my
purely random program only found solutions to n = 3 cases in a reasonable amount of time. n = 4 would
frequently take more than 100,000,000 tries. But n = 4 works well with this algorithm, finding solutions
quite quickly. The average number of tries necessary for this algorithm to find a magic square is just a little
over 5,000,000.
Pair heuristic. This only works for cases where n is even and I will describe it for the n = 4 case. Recall
that the magic sum for an n = 4 array is 34. Put elements randomly into the rows in pairs where each pair
sums to 17, ½ the magic sum value. For example, here is a magic square found using that algorithm.
 1 12  5 16 15  9  8  2 14  6 11  3  4  7 10 13
In this case the first random value found was 5. It was randomly placed in the first row. Notice this is
different from how the other two algorithms work. 12 is the value that pairs with 5 to get to 17 so we place
12 randomly in one of the remaining open positions. The next random number found was 1 and it was placed
randomly in one of the remaining positions and then its pair, 16, was placed in the only remaining spot in the
first row.
This algorithm performs considerably better than the previous algorithm, requiring on average of only
about  600,000 tries to find a solution.
I look forward to your thoughts about other general algorithms that will allow us to find magic squares
for even larger n’s.
Below is an outline of the class and the methods that need to be implemented for that class. Do not make
any changes to the classes, variables, names, etc. Just add code. Questions? Start or continue a Discussion.
This assignment is as much about following instructions as it is about programming. Be sure your
methods do exactly what is expected of them and all rules mentioned below and in Canvas and class
discussions are followed.
What follows are general rules that you must follow for this and, as applicable, all other programs you
write in this class. Failure to follow these rules will cost you points.
1. I will eventually post a final test program. A sample test program is already posted to help get you
started. Don’t wait for my final test program to appear to start debugging your program. You should
begin testing with your own test programs. Also, the final test program I post may not be the same test
program I run on your programs. You cannot assume your program is correct just because it works on the
posted test program.
2. Submit your program through Canvas with the name prog1.java. Be sure that my main (test) program is
in a different file from your class(es) and you should not submit my test program. Also, do not make your
classes “public”. If you deviate from any of these rules you will lose points because doing so makes it
much more difficult for me to manage and test your programs.

3. The top of your prog1.java file (and all java code that you turn in to me in the future) should begin with
comments that show: (i) Your name; (ii) Comp 282 and clear mention of what time your class meets; (iii)
The assignment number; (iv) The date the assignment was handed in (which is not necessarily the same
as the due date); (v) A brief description of what is contained in the file.
4. For all Java code you turn in:
a) Choose clear and suggestive variable names.
b) Be sure lines do not wrap to the first column of the next line or disappear off the end of the page.
c) Use comments generously to describe how your methods work. Comments should appear
           inside your methods, too – not just at the top. That said, don’t overdo the comments.
d) There should be no more than one return statement in any method.
e) Do not use break statements to exit loops.
f) Do not use global variables. If you are not sure if you are using them, ask.
g) Programs should be 100% your own work, as stated in the syllabus

Click HERE to order a unique plagiarism free paper done by 

professional writers and delivered before your deadline

In the dynamic world we currently live in, it’s becoming increasingly difficult for students to balance academics, co-curricular activities and entertainment among others. Students are required to submit countless assignments in a short time frame. These assignments should not be taken lightly as they form a major part of the grade when it comes to the end of the semester. Understanding the value of education and how these grades are important to students, Infinite Essays has made it its mission in life to offer customized essays to students at an affordable cost.

Click HERE to order a unique plagiarism free paper done by 

professional writers and delivered before your deadline

There are plenty of reasons why you should order a paper with Infinite Essays. We have reliable writers who are also very competent. They have over the years managed to work under tight schedules and deadlines. Whenever you order an essay with Infinite Essays, you are guaranteed a fast turnaround of your project and this is done on time. Other than writing custom papers, our writers provide value added services that include academic assistance in the areas that they have specialized in. We ensure that the work that we offer is free of plagiarism. Infinite Essays does not condone plagiarism in whatsoever manner. Our writers are very experienced and can handle of sorts of formats such as Turabian, Chicago, Harvard as well as APA and MLA. Infinite Essays covers a wide range of topics. At the moment, we specialize with over 68 topics. We understand the importance of maintaining confidentiality when dealing with our clients. It’s for this reason that we will never reveal the identity of our clients to whoever may be interested. Finally, we offer the most competitive rates in the industry.

Click HERE to order a unique plagiarism free paper done by 

professional writers and delivered before your deadline

Whenever you want to make an order with us, you will use our automated online ordering system. If you are having some difficulties of any sort, feel free to contact our live support and they will be more than happy to assist you. Ensure that you fill all the relevant information regarding your order. This is the area where you have to include the deadline of your assignment, the formatting style to be used and even the kind of academic paper you desire. The more information you give to our writers, the better.

Click HERE to order a unique plagiarism free paper done by 

professional writers and delivered before your deadline

Brief explanations of how our services work 1. Provide us with the necessary instructions. Go to the Order Now page and click the order now button. This is the part where you have to attach all the relevant attachments. At the same time, remember to add the instructions sheet here. Once you are sure that you have submitted all relevant information, please submit the final draft to us. 2. The second step will involve paying for the services. This is where an invoice will be sent to you. However, the easiest process is clicking the payment link and following all the prompts that come along. At the moment, all payments are made through PayPal only. 3. Working on your paper. Once you have made the payment, we will assign the order to a writer who will follow the instructions. Remember that our writers will spend countless hour laboring to ensure that the work they provide is meticulously researched. 4. Download your paper. When the writer is finished with the assignment, they will submit it to our writers who will then go through the paper to ensure that the paper has followed all instructions and there are no grammatical errors. We will then forward a copy of the assignment to your email. 5. Tell your friends. We always happy to receive a referral. Whenever a friend tells us that you recommended our services to them, we will give you a 40 percent discount for your next order. Whenever you have provided us with the necessary details, we will forward them to qualified writers who will handle the assignment for you. Remember that the writers will begin working on the assignment immediately. This is the sole reason we encourage our clients to provide their exact specifications during the first time.

Click HERE to order a unique plagiarism free paper done by 

professional writers and delivered before your deadline

Tackling an order may be challenging but we always offer the best. Before the assignment can be passed to you by our writers, it will be passed through a team of qualified editors and proofreaders to ensure that the paper is accurate and of the required quality. Once the editors are satisfied with the assignment, they will forward the assignment to your account and a copy to your email.

Click HERE to order a unique plagiarism free paper done by 

professional writers and delivered before your deadline

Discounts We offer the best prices in the industry. We currently have a 20 percent discount for all of our customers. If you feel the budget is putting a strain on you, contact our live support and they might consider you case. We treat each case differently. Remember that our main goal is to continue with education transformation. At the moment, we only accept payments in form of PayPal.

Click HERE to order a unique plagiarism free paper done by 

professional writers and delivered before your deadline

Why Choose Us While there are many companies in the writing service industry claiming to offer platinum services, none can match the services offered by Infinite Essays. Some of our writers have been with us since 2010. The testimonials that have been written by some of our happy customers is an indication of the good services that we offer.

Click HERE to order a unique plagiarism free paper done by 

professional writers and delivered before your deadline

Our Service Charter

1. Professional & Expert Writers

2. Top Quality Papers

3. Plagiarism-Free Papers: 

4. Timely Delivery

5. Affordable Prices

6. 24/7 Customer Support