(navigator.userAgent.indexOf('MSIE') !=-1)
randRange(1, 4) N1 + randRange(1, 4) randRange(1, 4) N2 + randRange(1, 4)
KhanUtil.getGCD( N1 * N2, D1 * D2 ) createVertTable( N1, D1, null, null ) createHorizTable( N2, D2, null, null ) createVertTable( N1, D1, "box1", "hint_diagram_table_overlay" ) createHorizTable( N2, D2, "box2", "hint_diagram_table_overlay" ) createCombinedTable( N1, D1, N2, D2, "box3", "hint_diagram_table_overlay" )

What is

 \huge{fraction( N1, D1 )} \huge{\times} \huge{fraction( N2, D2 )} \huge{ =\space ?} TABLE_1 TABLE_2

( N1 * N2 ) / ( D1 * D2 )

Another way to word this problem is:
What is fraction( N1, D1 ) of fraction( N2, D2 )?

Let's overlay the two boxes on top of each other.

TABLE_1_HINT TABLE_2_HINT

Notice how there are cardinal( N1 * N2 ) boxes in the overlap, and cardinal( D1 * D2 ) boxes total.

COMBINED_HINT

So this is equivalent to having cardinal( N1 * N2 ) out of cardinal( D1 * D2 ) slices of pie.

init({ range: [ [-2, 2], [-2, 2] ], scale: 50 }); piechart( [N1*N2, D1*D2], ["purple", "#fff", "#000"], 1.9 );

Notice how there are N1\timesN2=N1*N2 out of D1\timesD2=D1*D2 slices of pie.

This explains why the resulting fraction is fraction( N1 * N2, D1 * D2 ).

Optionally, this reduces to fractionReduce( N1*N2, D1*D2 ).

randRange( 1, 4 ) N + randRange( 1, 4 ) randRange( 2, 5 ) ( function() { var a = []; for ( var i = 1; i <= B; i++ ) { a.push( i ); } return a; } )()

What is

 fraction( N, D ) \huge{\times} \huge{B} \huge{ = \space ?} createVertTable( N, D )

B * N / D

Another way to word this is:

What is fraction( N, D ) of B?

So we have cardinal( B ) of these partially-filled in boxes.

 createVertTable( N, D, cardinal( i ) )

Let's put all these pieces together.

mixedBoxes( N, D, B, true )

So there are mixedFractionFromImproper( N*B, D ) boxes filled in.

mixedBoxes( N, D, B, false )

Or, since we have N*B pieces and D pieces per box, this is the same as fraction( N*B, D ).