On Jun 9, 2:33 pm, Esmail <ebo...@hotmail.com> wrote: > Hi, > > random.random() will generate a random value in the range [0, 1). > > Is there an easy way to generate random values in the range [0, 1]? > I.e., including 1? > > I am implementing an algorithm and want to stay as true to the > original design specifications as possible though I suppose the > difference between the two max values might be minimal.
Well, I guess someone should actually describe a solution to this rather than debate the necessity, if only for academic interest. So, in order to do this for real: Generate a random integer the range [0,2**53+1), probably the easiest thing is to get a 64 bit integer and scale it using integer division (which will also help to minimize selection bias). random.randrange probably does something like this already. If the number is exactly 2**53, return 1.0. Else stuff the bits of the number into the mantissa of a double, along with -1 as the exponent, and return that. Implementation left as exercise, mostly because it really won't make a difference. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list