Basic Math/Doubling Production
Expert: Josh - 2/16/2010
QuestionHi Josh - I have a math question I'm not skilled enough to answer on my own and I was hoping you could help. I'll put it in terms of a manufacturing problem:
Lets say I need to replicate a new part in my factory for a customer. Once I make the first duplicate (giving me two total parts) my machinery allows me to duplicate both parts, giving me four parts. I can now duplicate those parts, giving me a total of eight. This cycle continues as now I can make 16 in my next run, 32 in the following run and so on.
If the number is low, it would be fairly simple to calculate how many production runs I would need to reach a certain goal in total.
Let's say the goal is to make 64 total parts:
First Run: 1 part (2 total)
Second Run: 2 parts (4 total)
Third Run: 4 parts (8 total)
Fourth Run: 8 parts (16 total)
Fifth Run: 16 parts (32 total)
Sixth Run: 32 parts (64 total)
That's simple enough, but let's say that the goal number is high; say I need 4,567 parts.
Is there a formula I can use to calculate how many production runs I can expect to use to reach that number of parts given the assumption that I can double my production on every subsequent run, starting with one? If I can do that, then I will better be able to calculate how long it will take to produce the parts, and my cost per part.
AnswerHi Eric,
This is one of the most clearly stated questions that I have read for a long time. The formula you need is a simple one.
If the goal number is N, then the time required to produce N parts is given by t=<log_2(N)>, where "log_2( )" is the logarithm base-2 function; < > is a round-up operator.
Explanation:
| Suppose log_2(N) evaluates to x. What this is really saying is
| that 2^x (two raised to the power of x) equals N. In general, x
| will not be an integer, so we need to round it up to the
| next higher integer.
Finding log_2(N):
Your calculator may, or may not, have the log_2 function. But it should have either a "log_10" (logarithm base 10) or "ln" (natural logarithm, base 2.718282) button. Using either one, which for convenience, we shall call "Log", log_2(N)=Log(N)/Log(2).
Example: Suppose N=4567. To find log_2(N), we cab simply divide Log(N) by Log(2). Here, "Log" represents a general logarithm button, expressed with respect to an arbitrary base.
Using the numbers we have got here, and say, log_10 for "Log", we get Log(4567)=3.659631012 and Log(2)=0.301029996. So, log_2(4567) = 3.659631012/0.301029996 = 12.157 approximately.
i.e., we need 13 production runs to produce over 4567 parts.
After 12 runs, we obtain 2^12=4096 (which is not enough to reach our goal).
After 13 runs, we obtain 2^13=8192 parts (with spare capacity).
Comment: The above example seems wasteful as you have created 8192-4567=3625 redundant parts. Of course, in practice, you don't have to massively over-produce. Since the difference after 12 runs is only 4567-4096=471 (you are 471 short of the target of 4567), you can just take out 512 parts (from 4096) and duplicate this batch in the 13th run. This will give you 512-471=41 more than what is required.
In Microsoft Excel, you call do something like this:
| A1=log10(4567)
| A2=log10(2)
| A3=A1/A2
| A4=CEILING(A3,1)
Another example: To produce 126540 parts, we let N=126540.
log_10(126540)=5.10222783. As before, log_10(2)=0.301029996.
Therefore, log_2(126540)=5.1022/0.3010=16.9492...
It takes about 17 runs.