Date: 02/18/06 17:11:01
Subject: Re: 2-dimensional data structures
 
 
I am not sure how to most efficiently identify which region any given
square on the grid is actually in - any thoughts, for those that have
done this? - I don't want a massive list of IF conditionals if I can
avoid it.
 
 
Kermit says:
 
There is a MUCH more efficient way to do this!
 
If you are doing a  9 by 9  soduku,
 
Each row and column has exactly the digits 1 through 9
 
Think of your data as being in a list 81 cells long that is accessed 3 different ways.
 
As a 9 by 9,  row wise,
 
As a 9 by 9  column wise
 
As a 3 by 3 by 9  where the first two subscripts identify the region, and the last identify one of
the 9 values within the region.
 
 
And ,  most important,
 
To search for a value not yet in a row, column, or region,
 
Define holding list of length 9.
 
Suppose a  row has 4,2,8 in it,
 
and the corresponding column has 2,3,1 in it
 
and the correspond region has 2,  7, 6 in it.
 
Then you  initialize your hold vector to -1,
 
and set
 
hold(4) = 4
hold(2) = 1
hold(8) = 1
hold(2) = 1
hold (3) = 1
hold(1) = 1
hold(2) = 1
hold(7) = 1
hold(6) = 1
 
Then by scaning only the nine elements of hold, you see that
 
hold(5) = -1, , and hold(9) = -1  are the only values not  reset, and 
 
only  5 and 9 are possible choices for the  target cell.
 
 
 
 
 
 
 
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to