A question on modification of a list via a function invocation
Pavol Lisy
pavol.lisy at gmail.com
Fri Sep 8 17:39:27 EDT 2017
On 9/8/17, Gregory Ewing <greg.ewing at canterbury.ac.nz> wrote:
> Steve D'Aprano wrote:
>> A harder question is, what if you take a random number from the Integers?
>> How
>> many digits will it have in (say) base 10? I don't have a good answer to
>> that.
>> I think it may be ill-defined.
>
> I think the answer is that on average it has infinitely many
> digits -- despite every actual integer only having finitely
> many digits!
>
> We can prove this by contradiction. Suppose the answer were
> some finite number N. There are only finitely many integers
> with N or fewer digits, but there are infinitely many with
> more than N digits, so including them in the average must
> make it bigger than N. So N cannot be finite.
Sorry that my english is so poor that I could only draft ideas. :/
I think that it probably depends on distribution.
Think something like:
def numbers(e=0.999):
''' random numbers from integers '''
while 1:
r = random.random()
yield int(1/(1-r)**e)
and see:
https://www.wolframalpha.com/input/?i=area+between+y+%3D+1%2Fx%5E0.999+and+y+%3D+0+between+x+%3D+0+and+1
and unbounded (for e==1) ->
https://www.wolframalpha.com/input/?i=area+between+y+%3D+1%2Fx+and+y+%3D+0+between+x+%3D+0+and+1
# if somebody likes to test hipothesis ->
def avg(N=10000000):
return sum(itertools.islice(numbers(), 0,N,1))/N
More information about the Python-list
mailing list