1989 AHSME Problems/Problem 22

Revision as of 11:10, 24 September 2012 by Zimbalono (talk | contribs) (Created page with "== Problem == A child has a set of 96 distinct blocks. Each block is one of 2 materials (plastic,wood), 3 sizes (small, medium, large), 4 colors (blue, green, red, yellow), and ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Problem

A child has a set of 96 distinct blocks. Each block is one of 2 materials (plastic,wood), 3 sizes (small, medium, large), 4 colors (blue, green, red, yellow), and 4 shapes (circle, hexagon, square, triangle). How many blocks in the set different from the 'plastic medium red circle' in exactly 2 ways? (The 'wood medium red square' is such a block)

(A) 29 (B) 39 (C) 48 (D) 56 (E) 62

Solution

The blocks can be sorted into two identical $3\times4\times4$ cuboids, one wood and the other plastic, so that in each cuboid the z axis represents the size, the x axis the color, and the y axis the shape.

Suppose the reference block is in position $(0,0,0)$ in the plastic cuboid.

The wooden blocks already differ from the reference block in one way, so if $(0,0,0)$ in the wooden cuboid represents 'wood medium red circle' then any wooden block with two zero coordinates satisfies the requirements. These form the edges of the cuboid which adjoin $(0,0,0)$, so there are $2+3+3=8$.

The required plastic blocks must have two non-zero coordinates, so we count the blocks on the three faces around $(0,0,0)$ but not on the adjoining edges. There are $2\cdot3+2\cdot3+3\cdot3=21$.

In total there are $29$ blocks meeting the requirements.

[asy] import three; currentprojection=perspective((7.5,5,5),up=Z); currentlight=nolight; viewportmargin=(1mm,1mm); real c=.5; size(8cm,0); draw((0,0,0)--(0,0,4),Arrow3); draw((0,0,0)--(0,5,0),Arrow3); draw((0,0,0)--(5,0,0),Arrow3); for(int z=0 ; z<3 ; ++z) {    for(int x=0 ; x<4 ; ++x) {        for(int y=0 ; y<4 ; ++y) {           if (((x==0)&&(y*z!=0))||((y==0)&&(x*z!=0))||((z==0)&&(x*y!=0))) {c=.5;} else {c=.75;}           if (x*y*z>0) {c=1;}            draw(shift(x,y,z)*unitcube,gray(c)+opacity(.6),.5bp+black); }}} [/asy]