calculating a self.value, self.randomnum = normalvariate(x, y)
Dave Angel
davea at ieee.org
Sat Jun 20 09:57:53 EDT 2009
Vincent Davis wrote:
> I currently have something like this.
>
> class applicant():
> def __int__(self, x, y):
> self.randomnum = normalvariate(x, y)
> then other stuff
>
> x, y are only used to calculate self.randomnum and this seems to
> work. But I want self.randomnum to be 0 <= randomnum <= 100. The only
> way I can thing of to do this is is with a while statement and that
> seems more complicated than necessary. I would really like to keep it
> on one line. How would I do that?
>
> Thanks
> Vincent Davis
>
>
There are at least two interpretations to your requirement, both of
which change the distribution. So you have to specify what the real
distribution is that you want.
1) clamp - see Xavier's response. This will give you more values at
exactly 100 and/or exactly 0 than normalvariate would specify,
2) discard - this will throw away any values outside the range, and
try again. And in this case, a loop is essential, plus some mechanism
to handle the case where the loop would never terminate. For example,
suppose x is 10000.
More information about the Python-list
mailing list