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. Math^{TM}
© 1994-2013 The Math Forum
http://mathforum.org/dr.math/