On 9/8/17, Gregory Ewing <greg.ew...@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 -- https://mail.python.org/mailman/listinfo/python-list