- 26 Aug '06 21:44

I didn't think that the first person to reply would get it right.*Originally posted by Fat Lady***There are:**

8*8 squares of side 1.

7*7 squares of side 2.

6*6 squares of side 3.

5*5 squares of side 4.

4*4 squares of side 5.

3*3 squares of side 6.

2*2 squares of side 7.

1 square of side 8.

Making a total of 64 + 49 + 36 + 25 + 16 + 9 + 4 + 1 = 204. - 27 Aug '06 19:28Here's a slightly trickier one, one of Martin Gardner's.

Imagine you have an empty chess board in front of you and 32 2x1 rectangle shaped pieces of wood, each one composed of a black square glued onto a white square. The rectangles are such that each one will exactly cover two adjacent squares of the chess board.

With your 32 rectangular pieces it is easy to see that you can cover the chess board so that every black square on the chess board has a black side of a rectangle over it, and every white square on the board has a white side of a rectangle over it.

This is the puzzle - suppose I take away one of your rectangles, leaving you with 31, and obliterate the a1 and h8 squares on the chess board. Is it possible to cover the board (except for a1 and h8) in the same way as before? - 27 Aug '06 19:33 / 2 edits

Sorry, this was posted just the other day (in the correct forum).*Originally posted by Fat Lady***Here's a slightly trickier one, one of Martin Gardner's.**

http://www.timeforchess.com/board/showthread.php?threadid=50465

So before this thread dies, how many rectangles are there on a chessboard? - 29 Aug '06 13:35

1x2=2*Originally posted by ThudanBlunder***So before this thread dies, how many rectangles are there on a chessboard?**

3x2=6

4x2=8

5x2=10

6x2=12

7x2=14

8x2=16

Total: 68

1x3=3

2x3=6

4x3=12

5x3=15

6x3=18

7x3=21

8x3=24

Total: 99

1x4=4

2x4=8

3x4=12

5x4=20

6x4=24

7x4=28

8x4=32

Total: 128

1x5=5

2x5=10

3x5=15

4x5=20

6x5=30

7x5=35

8x5=40

Total: 155

1x6=6

2x6=12

3x6=18

4x6=24

5x6=30

7x6=42

8x6=48

Total: 180

1x7=7

2x7=14

3x7=21

4x7=28

5x7=35

6x7=42

8x7=56

Total: 203

1x8=8

2x8=16

3x8=24

4x8=32

5x8=40

6x8=48

7x8=56

Total: 224

224 + 203 + 180 + 155 + 128 + 99 + 68 = 1057 - 29 Aug '06 14:08

I have no idea what you are doing here. This problem can be bruteforced (there are 2*(9-m)*(9-n) mxn rectangles on a chessboard where m!=n [if so then remove the 2*]).*Originally posted by lausey***1x2=2**

3x2=6

4x2=8

5x2=10

6x2=12

7x2=14

8x2=16

Total: 68

1x3=3

2x3=6

4x3=12

5x3=15

6x3=18

7x3=21

8x3=24

Total: 99

1x4=4

2x4=8

3x4=12

5x4=20

6x4=24

7x4=28

8x4=32

Total: 128

1x5=5

2x5=10

3x5=15

4x5=20

6x5=30

7x5=35

8x5=40

Total: 155

1x6=6

2x6=12

3x6=18

4x6=24

5x6=30

7x6=42

8x6=48

Total: 180

1x7=7

2x7=1 ...[text shortened]... 24

4x8=32

5x8=40

6x8=48

7x8=56

Total: 224

224 + 203 + 180 + 155 + 128 + 99 + 68 = 1057

However a more elegant solution is that a chessboard has 9 vertical boundaries and 9 horizontal boundaries and to form a rectangle we choose any two of each.

There are 36 ways of choosing 2 from 9 (9C2) and therefore there are 36^2 rectangles.

36^2 = 1296 - 29 Aug '06 15:27 / 2 edits

I realised I made a mistake in my bruteforce approach. Wrote an algorithm that did indeed get 1296. If you are talking about oblongs, it is 1092 (previously assumed that rectangles aren't squares).*Originally posted by XanthosNZ***I have no idea what you are doing here. This problem can be bruteforced (there are 2*(9-m)*(9-n) mxn rectangles on a chessboard where m!=n [if so then remove the 2*]).**

However a more elegant solution is that a chessboard has 9 vertical boundaries and 9 horizontal boundaries and to form a rectangle we choose any two of each.

There are 36 ways of choosing 2 from 9 (9C2) and therefore there are 36^2 rectangles.

36^2 = 1296

I like your elegant solution though.

EDIT (short delphi code of bruteforce if anyone is interested):

procedure TForm1.Button1Click(Sender: TObject);

var

n, m, total: integer;

begin

total := 0;

for n := 1 to 8 do

for m := 1 to 8 do

if m n then // this is just for oblongs. For all rectangles, remove this line

total := total + (m*n);

showmessage(inttostr(total));

end;

EDIT2: meant to be an "m greater or less than n" in code, but did not render here, as well as indentation.