You have rectangular pot of water 10cm by 10cm at the bottom and 6 cm deep. It is filled to a depth of 3cm.
You have 7 solid steel shapes in front of you. The question is to find the new level of the water after each shape is put in the pot in the orientation described. The previous shape is removed before adding the next.
1. A cube 5cm on a side.
2. A prism in the shape of a right triangle with legs 5cm long. It is 5cm high but is placed on one of its legs with its hypotenuse sloping out of the water.
3. Another prism, this one having an equilateral triangle of sides 5cm and height 5cm. It is to be placed on its side with two faces sloping up out of the water.
4. A regular hexagonal prism. Each edge of the hexagon is 4cm and the height is 5cm. It is to be placed on its side.
5. A right square pyramid. Its base is 6cm on a side. It is 5cm high. It is to be placed base down.
6. A right cylinder of radius 3cm and length 5cm. It is to be placed on its side.
7a. A right cone of radius 3cm and height 5cm. It is to be placed base down.
7b. The same cone as 7a. This time placed on its side.
(In reply to re: #7b Solution (with explanation) -- a numerical integration comparison
I get 3.41655 cm as the new water level for 7b, based on the results of the following numerical integration program, which uses successive approximations:
pi = ATN(1) * 4
vWhole = pi * 9 * 5 / 3: PRINT vWhole
angle = ATN(3 / 5): PRINT angle * 180 / pi
angle2 = 2 * angle
apex = 3 * COS(angle): PRINT apex
rise = .41655
d = 3 + rise - 3 * COS(angle)
' y measured vertically from fattest part of circle
stp = .000001
vol = 0
FOR y = d TO apex STEP stp
y1 = y / COS(angle)
x = SQR(9 - y1 * y1)
ht = (apex - y) * TAN(angle) + (apex - y) / TAN(angle2)
area = 2 * x * ht * 2 / 3
vol = vol + area * stp
pRise = rise
rise = ((vWhole - vol) / 100)
LOOP UNTIL pRise = rise
PRINT vWhole - vol
PRINT rise * 100
The submerged volume shows as 41.65521933254351, as does 100 times the rise in level, making the new level, rounded, 3.41655 cm.
The theory behind the calculation is given in my previous post, and the water level found using any given assumption about it is used as the next approximation to that value. This converges to the above.
The initial value given was the result of a previous version, with stp = .00001 having converged to a value that rounds to that; at 10 times the step size each iteration took less time. Making the integration 10 times as accurate (1/10 the step size) did not change this value.
Posted by Charlie
on 2006-07-03 19:53:01