|


Rameses' PyramidDate: 12/10/97 at 16:37:59 From: Hugo Mckeill Subject: Rameses' Pyramid Rameses wishes to build a great pyramid for his interment. The structure will have a square base and be solidly composed of cubical stone blocks. Each level of the pyramid contains one less block per side as the pyramid rises. Rameses has available an initial work force of 35,000 slaves. Each morning the available labor pool is divided into work crews of 17 slaves each. Any remainder that cannot form a full crew gets the day off but are available the following day. Each crew can lay one block of the pyramid each day. Unfortunately, the heat of the desert sun causes the death of one member of each crew each day. Work ceases on the project when it can be determined that there will not be enough slaves available to raise the pyramid one more level. Each stone block measures 3 meters per side. How many days will it take to construct Rameses' pyramid? How tall will it be? How many of the original slaves survive the construction? This is a huge puzzle. I hope you can help me because I`m really stuck. I know that there must be at most 34983, but I can`t get any farther. Thanks, Hugo
Date: 12/11/97 at 13:32:59
From: Doctor Jerry
Subject: Re: Rameses' Pyramid
Hi Hugo,
You didn't give the dimensions of the first layer, but given that the
Great Pyramid is 230.4 meters on a side, I'll assume that the first
layer has 76*76 = 5776 stones in it (230.4/3=76.8). So, the number of
stones in the k th layer is L(k) = (76-(k-1))^2, k=1,2,...76.
The number of stones laid on day j is equal to the number c(j) of
crews available on day j, where c(j) = Quotient(35000-(j-1),17) and
Quotient(n, m) is the integer quotient of n and m. We leave the domain
of c open for the moment. We'll see that we don't need to think about
it.
Now let T(r) be the number of days required to complete layers 1
through r, so that T(1) would be the least positive integer for which
c(1)+c(2)+...+c(T(1)) is equal to or greater than L(1); T(2) would be
the least positive integer for which c(1)+c(2)+...+c(T(2)) is equal to
or greater than L(1)+L(2); and so on. Here's a table of values of
{k,T(k)}, as computed by Mathematica.
{{1,3},{2,6},{3,9},{4,11},{5,14},{6,16},{7,19},{8,21},{9,23},{10,25},
{11,28},{12,30},{13,32},{14,33},{15,35},{16,37},{17,39},{18,41},
{19,42},{20,44},{21,45},{22,47},{23,48},{24,50},{25,51},{26,52},
{27,53},{28,55},{29,56},{30,57},{31,58},{32,59},{33,60},{34,61},
{35,61},{36,62},{37,63},{38,64},{39,65},{40,65},{41,66},{42,66},
{43,67},{44,68},{45,68},{46,68},{47,69},{48,69},{49,70},{50,70},
{51,70},{52,71},{53,71},{54,71},{55,71},{56,72},{57,72},{58,72},
{59,72},{60,72},{61,72},{62,73},{63,73},{64,73},{65,73},{66,73},
{67,73},{68,73},{69,73},{70,73},{71,73},{72,73},{73,73},{74,73},
{75,73},{76,73}}
Here are some simpler numbers with which the above display can be
checked partially.
L[1] = 5776
Table[{j,c[j],Pc[j]},{j,1,4}]//TableForm
{{"1", "2058", "2058"},
{"2", "2058", "4116"},
{"3", "2058", "6174"},
{"4", "2058", "8232"}},
So, it is clear that T[1] = 3
L[1]+L[2] = 11401
Table[{j,c[j],Pc[j]},{j,1,7}]//TableForm
{{"1", "2058", "2058"},
{"2", "2058", "4116"},
{"3", "2058", "6174"},
{"4", "2058", "8232"},
{"5", "2058", "10290"},
{"6", "2058", "12348"},
{"7", "2058", "14406"}},
So, T(2) = 6. Unless I've made some fundamental or lesser mistakes
(which is always possible), the remainder of the problem isn't bad.
What do you think?
-Doctor Jerry, The Math Forum
Check out our web site! http://mathforum.org/dr.math/
Date: 12/12/97 at 17:00:01
From: Doctor Jerry
Subject: Re: Rameses' Pyramid
Hi Hugo,
Here's my second try. I hope you are still interested. You didn't
give the dimensions of the first layer, but given that the Great
Pyramid is 230.4 meters on a side, I'll assume that the first layer
has 76*76 = 5776 stones in it (230.4/3 = 76.8). So, the number of
stones in the k th layer is L(k) =
(76-(k-1))^2, k = 1,2,...76.
If we know the number s[n] of slaves available on the nth day, then
the number c[n] of crews is c[n] = Quotient[s[n],17], n=1,2,... .
Note: Quotient[n, m] gives the integer quotient of n and m. The
number s[n] of slaves can be written as s[n]=s[n-1]-c[n-1], n=2,3,...,
and s[1]=35000 .
You can check the following values:
Table[{k,s[k],c[k]},{k,1,4}]
= {{1,35000,2058},{2,32942,1937},{3,31005,1823},{4,29182,1716}}
Stones[k] is the number of stones needed to fill the kth level,
k = 1,2,...,76.
Clear[Stones];Stones[k_]:=(76-(k-1))^2;
SigStones[k] is the number of stones needed to fill levels 1
through k.
Clear[SigStones];SigStones[k_]:=Sum[Stones[j],{j,1,k}];
Note that the number of crews available on a given day is equal to the
number of stones that can be placed on that day. From the calculation
Table[c[j],{j,130,139}]
={1,1,1,1,1,1,1,0,0,0}
we note that the largest number of stones that can be placed is equal
to
Sum[c[j],{j,1,136}]
= 34984Since
Table[SigStones[j],{j,1,7}]
={5776,11401,16877,22206,27390,32431,37331}
we cannot go past the sixth level.
Let's imagine a list {s(1),s(2),...,s(34984)} of the stones. This
list can be partitioned into level-blocks. The first level-block is a
list of the stones required to fill the first level. This can be
described in terms of an integer LB(1), where the first level is made
up of stones s(1),...,s(LB(1)). The second level-block would be stones
s(LB(1)+1),...,s(LB(2)). And so on. We calculate the level-block
numbers. If we run out of stones at any stage, we set that level-block
number equal to 0.
Since
Stones[1]
=5776
and there are 34984 stones available to fill this first level,
LB(1)=5776.
Here's a command/program with which we can calculate the level-block
numbers. The programming term "Block" has nothing to do with the
level-blocks mentioned above. You may be able to follow the logic of
the program - the language is similar to Pascal.
Clear[LB];
LB[k_]:=Block[{bn},If[LB[k-1]==0,bn=0];
If[34984-LB[k-1]>=Stones[k],bn=LB[k-1]+Stones[k],bn=
0];Return[bn]];
LB[1]=5776;
Table[{j,LB[j],Stones[j]},{j,1,7}]
=
{{1,5776,5776},{2,11401,5625},{3,16877,5476},{4,22206,5329},
{5,27390,5184},{6,32431,5041},{7,0,4900}}
So, now we know that work goes on until levels 1 through 6 are filled.
Work ceases at this point. To figure out the number of days we start
by looking at some data.
Table[{j,Sum[c[k],{k,1,j}]},{j,1,10}]
=
{{1,2058},{2,3995},{3,5818},{4,7534},{5,9149},{6,10669},{7,12100},
{8,13447},{9,14714},{10,15907}}
So, at the end of day 3, 5818 stones will have been placed. This more
than finishes the first layer (5776). At the end of day 7, 12100
stones will have been placed. This more than finishes the second layer
(5776+5625 = 11601). We assume that if a layer is completed during a
day and the next layer can be eventually completed, then work
continues on the next layer. However, if the next layer can not be
completed at any time in the future, work stops with the completed
layer. However, we assume that the slaves die on that last day as
usual, so that the number of surviving slaves will be s[n+1],
where n is the last day of work. So, we seek the first j so that
SigStones[6]-Sum[c[k],{k,1,j}]<0.
LD=Table[SigStones[6]-Sum[c[k],{k,1,j}],{j,1,45}]
={30373,28436,26613,24897,23282,21762,20331,18984,17717,16524,15401,
14344,
13350,12414,11533,10704,9924,9190,8499,7848,7236,6660,6118,5607,5127,
4675,
4249,3848,3471,3116,2782,2468,2172,1894,1632,1385,1153,935,729,535,
353,182,21,-131,-274}
So, it appears that on day 44 work ceases. We calculate s[45].
s[45]
= 2438
This is the number of slaves left.
Well, you know that I make mistakes. Hopefully, there are no bad ones
here. Thanks for this interesting problem.
-Doctor Jerry, The Math Forum
Check out our web site! http://mathforum.org/dr.math/
|
Search the Dr. Math Library: |
[Privacy Policy] [Terms of Use]


Ask Dr. MathTM
© 1994-2013 The Math Forum
http://mathforum.org/dr.math/