Given space (x,y) and a bunch of points (x_i,y_j) starting from (1,1) partition the space into squared such that each square starts from (1,1) or (x_i,y_j) filling the space to (x_i+,y_j+1) (in ither words filling the space between it) and no square overlaps with any other. Example: if the (x_i,y_j) is at (3,4) than the area between (1,1) and (3,4) can be filled with square o=(1,1,3):
0 1 2 3
1 o o o
2 o o o
3 o o o
4 x
and
a=(1,4,1)
b=(2,4,1)
x = (3,4,1)
0 1 2 3
1 o o o
2 o o o
3 o o o
4 a b x
so the result is :
(1,1,3)
(1,4,1)
(2,4,1)
(3,4,1)
and of course this repeats for all other points in the initial chart (marked with "X") until the entire area (12,12) is filled
| [reply] [d/l] [select] |
You want to fill the gaps between your x points with disjoint squares?
> I need to know how many of these squares are in the space and all their coordinates (tuples).
You are implying there is only one solution, that's wrong because you exclude overlaps.
Maybe you have an "optimal" solution in mind, but you didn't tell us the criteria.
Like
- smallest number of covering squares or
- always starting from the left upper corner going right then down
otherwise the solution is trivial, just take all "squares" with length 1.
Give us your solution for your OP maybe we can guess what you really want.
Smells like an XY problem to me.
Rectangles instead of squares would be much easier.
| [reply] |
otherwise the solution is trivial, just take all "squares" with length 1.
and keep merging them till the cows come home... | [reply] |
yes sorry I did don specify that so the condition is:
"always starting from the left upper corner going right then down"
I understand rectangles would be easier but i need squares as then i can mark the coordinate with one number only. I'll post the solution in te initial post so ppl do not need to read the conversation through ... And thnx!!
| [reply] |
| [reply] |
| [reply] |