There is any easy solution: on a 36x36, let the top row be the numbers 136, the second row be 236,1, the third row be 336,1,2, and so on. But that's not the point of the exercise. The point is to find a way to build some intelligence into a program that will randomly generate solutions of any size.
The problem does have more than one solution. Swapping any two rows or columns of one solution will generate another solution. This can be done repeatedly in any number of combinations to generate thousands of solutions. But again that is not the point of the exercise.
davidj  [reply] 
If the top row has numbers 136, and the second row has numbers 236, 1, then the top right 6x6 grid contains the number 36 twice. It was my understanding that this wasn't allowed.
Abigail
 [reply] 
You are absolutely right. Don't know what I was thinking. But then, its the weekend. I can't think too hard all the time :)
davidj
 [reply] 
Hmm. In a 36x36, using your solution, the top left 6x6 grid would contain multiple 2's11's.
I guess if you move 6 along each time? But then after 6 rows you start repeating.
But OK, fair enough... you're not interested in the algorithm but more in intelligence to find solutions. Well, I guess one thing would be how you approach the search space.
At the moment, your approach seems to be "start with some numbers then guess some more". Perhaps an alternative approach would be to think of it as an ordering. You have 36 1's, 36 2's.... and 36 36's. This is your set of numbers. Lay your set out in some initial order. See if it works, if not, try swapping two set members at random.
That's the initial, brute force solution  pretty stupid and slow. The smarts come in when you decide which numbers to swap.
Gosh, what you are doing sounds like much more fun than the sort of programming I have to do ;)
A massive flamewar beneath your chosen depth has not been shown here 

 [reply] 