Distribution of 0 digits in factorial series: Difference between revisions
(Clarify task wording) |
m (typo) |
||
Line 25: | Line 25: | ||
; The task: |
; The task: |
||
Create a function to calculate the mean of the proportions |
Create a function to calculate the mean of the proportions of 0 digits out of the total digits found in each factorial |
||
proportion of 0 digits in base 10 should be calculated using the number as printed as a base 10 integer. |
product from 1! to N!. This proportion of 0 digits in base 10 should be calculated using the number as printed as a base 10 integer. |
||
Example: for 1 to 6 we have 1!, 2!, 3!, 4!, 5!, 6!, or (1, 2, 6, 24, 120, 720), so we need the mean of |
Example: for 1 to 6 we have 1!, 2!, 3!, 4!, 5!, 6!, or (1, 2, 6, 24, 120, 720), so we need the mean of |
Revision as of 05:52, 10 June 2021
Large Factorials and the Distribution of '0' in base 10 digits.
- About the task
We can see that some features of factorial numbers (the series of numbers 1!, 2!, 3!, ...) come about because such numbers are the product of a series of counting numbers, and so those products have predictable factors. For example, all factorials above 1! are even numbers, since they have 2 as a factor. Similarly, all factorials from 5! up end in a 0, because they have 5 and 2 as factors, and thus have 10 as a factor. In fact, the factorial integers add another 0 at the end of the factorial for every step of 5 upward: 5! = 120, 10! = 3628800, 15! = 1307674368000, 16! = 20922789888000 and so on.
Because factorial numbers, which quickly become quite large, continue to have another terminal 0 on the right hand side of the number for every 5 increase in the factorial base number, one might think that the proportion of zeros in a base 10 factorial number might be close to 1/5. However, though the factorial products add another terminating 0 every 5, as the numbers become quite large, the number of digits in the factorial product expands exponentially, and the number above the terminating zeros tends toward 10% of each digit from 0 to 1, as the factorial becomes larger. Thus, as the factorials become larger, the proportion of 0 digits in the factorial products shifts slowly from around 1/5 toward 1/10, since the number of terminating zeros in n! increases only in proportion to n, whereas the number of digits of n in base 10 increases exponentially.
- The task
Create a function to calculate the mean of the proportions of 0 digits out of the total digits found in each factorial product from 1! to N!. This proportion of 0 digits in base 10 should be calculated using the number as printed as a base 10 integer.
Example: for 1 to 6 we have 1!, 2!, 3!, 4!, 5!, 6!, or (1, 2, 6, 24, 120, 720), so we need the mean of (0/1, 0/1, 0/1, 0/2, 1/3, 1/3) = (2/3) (totals of each proportion) / 6 (= N), or 0.1111111...
Example: for 1 to 25 the mean of the proportions of 0 digits in the factorial products series of N! with N from 1 to 25 is 0.26787.
Do this task for 1 to N where N is in (100, 1000, and 10000), so, compute the aggregate proportion of 0 digits in the aggregate of all digits for factorials from 1 to 100, 1 to 1000, and 1 to 10000.
- Stretch task
Find the N in 10000 < N < 50000 where the proportion of 0 digits in the aggregated factorial products from 1 to N permanently falls below 0.16.
Python
<lang python> def facpropzeros(N, verbose = True):
proportions = [0.0] * N fac, psum = 1, 0.0 for i in range(N): fac *= i + 1 d = list(str(fac)) psum += sum(map(lambda x: x == '0', d)) / len(d) proportions[i] = psum / (i + 1)
if verbose: print("The proportion of 0 in factorials from 1 to {} is {}.".format(N, psum / N))
return proportions
for n in [100, 1000, 10000]:
facpropzeros(n)
</lang>
- Output:
The proportion of 0 in factorials from 1 to 100 is 0.24675318616743216. The proportion of 0 in factorials from 1 to 1000 is 0.20354455110316458. The proportion of 0 in factorials from 1 to 10000 is 0.17300384824186707.