At 09:51 PM 10/9/2006, you wrote: >On 10/10/06, Dick Moores <[EMAIL PROTECTED]> wrote: > > And another question. That page also says, "Almost all module > > functions depend on the basic function random(), which generates a > > random float uniformly in the semi-open range [0.0, 1.0). Python uses > > the Mersenne Twister as the core generator. It produces 53-bit > > precision floats and has a period of 2**19937-1." What is a 53-bit > > precision float? Would that be something like a float accurate to 8 > > or 9 figures (dividing 53 by 8). Or what? > >Hi Dick, > >Have a look here: http://en.wikipedia.org/wiki/Double_precision >and here: http://en.wikipedia.org/wiki/IEEE_floating-point_standard > >Basically, floating point numbers are of the form "x times 2**y", >where x is a binary number between 1 and 10 (that's binary 10, decimal >2). 53 bits means 53 binary digits of precision (including the >initial 1). > >Does that help?
Well, before I dig into those references that I know are going to be difficult to understand, could you give me the bottom line about random()? >>> from random import random >>> print "%.17f" % random() 0.54188753195519013 >>> I can get what appears to be a random number precise(?) to 17 digits. How many base-10 digits would a "53-bit precision float" have, if converted to base 10? >>> 2 ** 52 4503599627370496L >>> 2**53 9007199254740992L >>> >>> len(str(2**53))-1 15 So is the answer to my question something like len(str(2**53)) -1? (minus 1 because of the L in the long integer) Thanks, Dick _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor