
You did in broad lines.
Still, even Paul Kellet is a little bit messy in his mathematics.
At one point he states :
we need to figure the highest powers of 2 and 5 dividing 100! and take the lesser of the two exponents.
But he then omits determining the highest power of 2 dividing 100! and omits showing that its power is larger then the power of 5 dividing 100!.
Also it still needs to be proven that the numbers that can not be factorized into 2's and'or 5's can never produce another number that can be factorized along either number after multiplication. Paul Kellet omits that part of the proof as well. Basically he describes a method for calculating the minimum number of trailing zero's, but does not proof that this number is also the maximum number of trailing zero's.
The idea behind his proof is actually very elegant however, although it is beyond novice level. His explanation is certainly beyond novice level mathematics. It can be made full and be worded much simpler, so that is complete and even novices can understand it.
Basically he is saying that the total number of trailing zero's in the number 100! is equal to the number of times you can devide that number by the number 10 without having to write down decimals. As the number 10 can be factorized into a product of the numbers 2 and 5 as 2*5 = 10, you can know the number of
even
(= no resulting decimals) divisions by 10 by factorizing all numbers between 1 to 100 along the numbers 2 and 5. You then group as many of the factored out 2's and 5's together into pair (2*5) as you can (forming 10's) and count these combo's => the number of combo's produces the minimum number of trailing 0's.
a small example for the other readers out here ;
the result of 55*54*53*52*51*50 has 3 trailing zero's. Proof :
55 factors in 11*5
54 factors in 27*2
53 can not be factored in multiple of 2's or 5's
52 factors in 26*2
51 can not be factored in multiple of 2's or 5's
50 factors in 5*5*2
All the leftover parts that can not be further factorized along either the numbers 2 or 5 are members of the
number space
that satisfies teh condition
the number is an integer with its last digit being 1,2,3,4,6,7,8 or 9'. This space is closed under multiplication, meaning that no multiplication using numbers from this number space can result in a number that does not belong to this number space as well. As a consequence, the result (multiplication of leftovers) can never produce any trailing zero's as that digit is not part of the set 1,2,3,4,6,7,8 and 9. This is turn proofs that the method described above not only gives the minimum amount of trailing zero's but also the maximum amount of trailing zero's
Combining these results we have found 3 times a factor 5 and three times a factor 2 allowing us to form 3 combo's of 2*5=10 ergo the resulting multuplication has 3 trailing zero's
P.S. I used the identifier
number space
here for clearity, but I think the correct name for such a mathematic body is a
ring"
Wouter
and of course I too omitted part of the whole proof. That proofs my point at how easy it is to not close up a proof !
Everything was covered in my last post except for the numbers 2's (or 5's) that can not be taken up into a combination (2*5=10). Can this excess in number 2's (or 5's) result in trailing zero's ?
No, as all the numbers that can be fully factorized into a multiplication of 2's is a closed number space (ring) as well. Multiplication using numbers that are members of this number space (ring) all have a last digit that belongs to the set 2,4,6 and 8. Therefor there exist no multiplication of any given number of 2's that can produce a number that ends with the digit 0. Therefor this number can never be evenly divided by 10. As the set 2,4,6 and 8 is a subset of the set 2,3,4,6,7,8 and 9 the numbers space (ring) for powers of 2's is wholely enclosed in the numbers space (ring) for the leftovers as identified in my former posting. As a result, the multiplication of the leftovers from factorizing and the excess of 2's can never produce a number that ends with either a 5 or 0 as the last digit. Therefor this series of leftover numbers can never produce additional trailing zero's.
The proof when an excess of 5's is had goes along the line of reasoning.
So ! Now the proof is mathematically complete and closed.
Can you tell that I do this kind of stuff more often !
Ehh, is someone still paying attention ?! <img src=
alt=
/>
Wouter

Actually I was doing these proofs as a break from the work that I need to get done this night. I have to deliver a report dealing with system identification tomorrow.
One of the plots ;
Notice how both signals, input and ouput, are both very noise like. The output has a very strong noise like disturbance superimposed over it, just to make things extra interesing !
I have to use various mathematical tools based on probability theory to identify the mechanical system that relates the two signals. Actually similar methods are used to have mobile phones and satelite communication work. These signals are strongly disturbed by outside interference as well.
A collegue once described these methods as standing on one side of the hall where a rock concert is held trying to hear what your girlfriend is yelling at you from the far away other side of the hall.
I have done that and now I'm completing my report.
Wouter

Wouter, I understand the elegance of a formal proof. I also operate in the real world now, where time is money, and Simple is usually best.
Now what about Pi to 100! places....
24 is correct for trailing zeoes of 100!...
The logic required for n!...
-only multiplying by 10 or a factor of 10 will produce a trailing zero
-multiplying 5 by an even number will produce a factor of 10
-there will be more even numbers than multiples of 5, so 5's are the limiting number in the next step.
-reduce all the numbers down to there prime numbers
-counting all the times 5 occurs will give you the number of trailing zeroes.
Actually I was told many years back that the number 100! denotes more elements then there are particles in the universe. So I think that I'll pass on :
With respect to :
There are things in the real world like designing airplanes, rockets, medicine and nuclear or chemical reactors were getting things absolutely right is paramount and trumps any
time is money
or
simple is best
considerations.
Or at least that should be the case.
Make an error in some computer scripting and your PC crashes, make an error in some control system stabilizing a nuclear reactor or a robot arm and people loose lives and body parts. In case of designing nuclear reactors you can not even dependent on prototyping to show the errors. The meltdown or blowing up is such a severe accident that a designer can never take the risk of it happening.
I'm active in the field of such systems.
Wouter
The number 9 can not be factored in either 2's or 5's and it is not a prime number, it does however remain in the leftover series when calculating 100! and therefor your statement
-reduce all the numbers down to there prime numbers
is incorrect. Also problematic is factorizing a number like 10 to 5's; the result is 2*5 and 2 is most definately not a prime number either.
2*5 = 10 where neither 2 or 5 is a factor of 10. This is a direct counter example to your statement :
only multiplying by 10 or a factor of 10 will produce a trailing zero
. The problem here is your use of the word
only
; if you had left that one out then the statement would have been truthful.
Again, like others, you have discribed a method of calculating the number of trailing zero's without proving that this method is actually producing the correct number of trailing zero's. As such you have ONLY proven the minimal amount of trailing zero's to be 24.
This is a small but very important difference in mathematics.
An example; I can show that 20 can be divided by 2 but this doesn't show that it can ONLY be devided by 2.
Interesting stuff right ? It actually factors in with alot of discussions of boat design we have on these forums. There too people
proof
stuff using simple but not
logically thorough
means, making their believes sometimes unfouded or even wrong.
One example of course being that shorter hulls are always slower and as such the F16's can never be as fast as F18's. They could
proof
this by showing that the shorter (and lighter) P16 is significantly slower then the Prindle 18 while the general layout of both designs is almost identical. This statement is in itself truthful but its extrapolation to the conclusion that therefor the smaller (and lighter) F16's must be significant slower then the very similarly designed F18's is simply wrong.
Or Bill Roberts favourite gem ; That where monohull top speeds are determined by Max Speed = 1.54 *sqrt(hull length), multihull top speeds are determined by Max Speed = 4.5 * sqrt(hull length)
You can proof the existance and validity of the first relation but not of the second even though one can show that both produce relative accurate max speeds for a range of boats (but not for the whole range of possible designs).
Showing that some results/statements are correct does not equate to proving that only they are correct or that they are always correct.
Interestingly enough the reverse is however true. A single counter example is enough to completely devalidate any given statement and as such equates as being a fully enclosed (counter) proof.
Wouter

With respect to :
There are things in the real world like designing airplanes, rockets, medicine and nuclear or chemical reactors were getting things absolutely right is paramount and trumps any
time is money
or
simple is best
considerations.
We are talking on an internet forum, not designing airplanes, rockets, medicine and nuclear or chemical reactors.
I'll stick with
simple is best
.

Pff, lots of noise about nothing. For 100! just use your computer:
pepin@bombast:~ % python
Python 2.3.5 (#1, Aug 19 2006, 21:31:42)
[GCC 4.0.1 (Apple Computer, Inc. build 5363)] on darwin
Typehelp,copyright,creditsorlicensefor more information.
>>> result = 1
>>> for i in range(1,101):
... result *= i
...
>>>
>>> result
93326215443944152681699238856266700490715968264381621468592963895217599993229915
608941463976156518286253697920827223758251185210916864000000000000000000000000L
>>>
It is not that simple, is it ?
Most computers can not store integer numbers larger then
(2^64 -1) = (18446744073709551616-1) = 18446744073709551615
as they are limited by 64 bits processors and memory slots.
The number 100! is substantially large then that.
So nearly all numerical software switches to floating point number presentation which shortens the number part of the storage space to at least 56 bit as the exponential needs to be stored as well.
This limit the total integer part of the floating point number to :
(2^56 -1) = (72057594037927936-1) = 72057594037927935
Which in turn only allowes floating point numbers to be accurate only to their 17th digit.
This is much much much smaller then the number 100! you give (about 8 times more digits) :
110! = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518
286253697920827223758251185210916864000000000000000000000000
So the comment
just use your computer
is misleading at best.
You have to have access to a supercomputer (very large computer bus sizes) or special analytical mathematical software packages to even be able to produce the above number in all its digits.
I dare say that the vast majority of the people out there don not have access to either or even understand the need for either in this situation.
Wouter


There are 24 factors of 5 in 100!: one for each multiple of 5 in [1,100] and one more for each multiple of 5*5.
There are >50 factors of 2 in 100!: one for each multiple of 2, one for each multiple of 2*2, one for each multiple of 2*2*2, etc.
So, there are 24 factors of 10 in 100! since 10=2*5.
So there are 24 zeros on the end of 100!, since each zero on the end implies a factor of 10.
--Glenn
P.S.: I got it wrong in my head when I implied it was 21.
P.P.S.: Anyone want the shortcut answer to
N balls in M bins?

Wouter, really got something else to do this time. Besides the one thing I hated about probability theory was the balls and containers examples. For some reason that never set right with me. But I'm sure the formula n!/(k!*(n-k)!) is to found used somewhere in that problem.
Wouter


Most computers can not store integer numbers larger then
(2^64 -1) = (18446744073709551616-1) = 18446744073709551615
as they are limited by 64 bits processors and memory slots.
[snip...]
The Python interpreter I used automatically switch to big integer when it becomes too big to fit in a 64 bit int. That's why I picked it, and that why that result is correct.

3.1415926535897932384626433832795028841971693993751058209749
445923078164062862089986280348253421170679821480865132823066
470938446095505822317253594081284811174502841027019385211055
596446229489549303819644288109756659334461284756482337867831
652712019091456485669234603486104543266482133936072602491412
737245870066063155881748815209209628292540917153643678925903
600113305305488204665213841469519415116094330572703657595919
530921861173819326117931051185480744623799627495673518857527
248912279381830119491298336733624406566430860213949463952247
371907021798609437027705392171762931767523846748184676694051
320005681271452635608277857713427577896091736371787214684409
012249534301465495853710507922796892589235420199561121290219
608640344181598136297747713099605187072113499999983729780499
510597317328160963185950244594553469083026425223082533446850
352619311881710100031378387528865875332083814206171776691473
035982534904287554687311595628638823537875937519577818577805
32171226806613001927876611195909216420198938
GOOGLE !!!!!
don't think this kinda
fun
will get folks flocking to join your class (this forum is the worlds window to F16 after all ) , perhaps you're trying to attrack a niche market
good luck whatever .
Well, with Wouter punting, and no other expressed interest, I'll tell the answer to
how many ways are there to put N balls in M bins
to kill this thread:
--
Any set of balls in bins is uniquely represented by a string like
o|ooo|o|||o
where 'o' represents a ball and '|' represents a wall between bins. There are M-1 walls between bins and N balls, so these strings can be generated by starting with N+M-1 walls and choosing N to be balls.
So the answer is
N+M-1 choose N.
--
I first encountered this problem in a graduate level Information Theory course at Caltech, where it stumped a lot of people. It also stumped my research group at Columbia for a couple weeks before I noticed we were working on the same problem. It looks easy because
buckets
are used as sources of
balls
in basic probability problems, but the usual approaches to solving combinatorial problems problem fail on this one.
The problem looks easy, but is very hard, yet the answer is *obvious* basic combinatorics once you look at the problem the right way. That's why it's my favorite combinatorics problem.
--Glenn
the front tire runs over the nail. with the load running over the head and causing the head to flick the point up. a milli-second later the upright but falling nail is in just the correct position to get the back wheel.. after one revolution the back tie is nicely
nailed
..
That means that python switched to a whole different suit of algoritms and stores the result no longer as a number but as a string, as a word processor does with text.
Basically, it stops using the numerical unit in the microprocessor and handles calculations by (its own) software algorithms. = SLOOOOOOOOW, although with todays microprocessors, everything goes fast.
Certainly makes Python a very interesting piece of software.
Wouter
- 57 Forums
- 31.6 K Topics
- 345.9 K Posts
- 1,396 Online
- 31.1 K Members




![[Linked Image]](http://www.catsailor.com/bb_files/130508-Goodfigure2.jpg)
