Associated Topics || Dr. Math Home || Search Dr. Math

### Rameses' Pyramid

```
Date: 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/
```
Associated Topics:
High School Puzzles

Search the Dr. Math Library:

 Find items containing (put spaces between keywords):   Click only once for faster results: [ Choose "whole words" when searching for a word like age.] all keywords, in any order at least one, that exact phrase parts of words whole words

Submit your own question to Dr. Math
Math Forum Home || Math Library || Quick Reference || Math Forum Search