On 31/12/12 10:59, Brandon Merritt wrote:
I am having trouble figuring out a solution after a couple hours now of
playing with the code. I'm trying to make a latin square using the code
below:

scaleorder = int(raw_input('Please enter a number for an n*n square: '))
topleft = int(raw_input('Please enter the top left number for the square: '))
firstrow = range((topleft),scaleorder+1)

count = 0
while count<  8:
     for i in firstrow:
         print i
         count += 1
         firstrow[i+1]


-----------------------------------------------------------------------

It seemed like I could make the for loop work by doing something like this:

for i in firstrow:
         print i, i+2


but  that obviously is not a solution either. Any ideas?


Absolutely none. I don't understand your question. What's a latin square?
Is it the same as a magic square? What do you mean, "make the for loop work"?
The for loop already works: it iterates over the range topleft to scaleorder
inclusive. You say "that obviously is not a solution", but a solution to
what? What is it supposed to do?

I think that you need to think a bit more carefully about what you are
trying to accomplish. Probably the most valuable piece of advice I ever
received was that *writing code* should be the last thing you do when
trying to solve a problem. When I have a tricky problem to accomplish,
I will sometimes spend hours designing my code with pencil and paper
before writing my first line of code.

Can YOU solve a latin square using pen and paper? If you can't, how do you
expect to write a program to do it?

Start by writing down the steps that you would take to make a latin square.
I suggest with starting with a fixed size, say, 5x5:

* pick a number for the top left corner, say, 3

* write down the first row: 3 ? ? ? ?
  [you need to come up with a rule for making the row]

* write down the second row: ? ? ? ? ?
  [again, you need to come up with a rule for making the next row]

... and so on for the other three rows. Now you have an algorithm for
making 5 x 5 latin squares.

Now you can write some code to do that!

Once that is working, you can start thinking about changing from fixed
5 x 5 squares to arbitrary N x N sizes.



--
Steven
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to