quasi
Posts:
12,067
Registered:
7/15/05


Re: Random numbers
Posted:
Dec 21, 2007 9:29 AM


On 21 Dec 2007 16:16:52 +0200, Phil Carmody <thefatphil_demunged@yahoo.co.uk> wrote:
>quasi <quasi@null.set> writes: >> On Fri, 21 Dec 2007 07:43:48 0500, quasi <quasi@null.set> wrote: >> >> >On 21 Dec 2007 14:33:08 +0200, Phil Carmody >> ><thefatphil_demunged@yahoo.co.uk> wrote: >> > >> >>John <iamachamp@gmail.com> writes: >> >>> Given a function that returns a random number between 15, write one >> >>> that returns a random number between 17 for the case when it should >> >>> be integer and for the case it can be real. >> >> >> >>int rand1to7i() >> >>{ >> >> int r1=rand1to5i(); >> >> if(r1==5) { r1+=rand1to5i()/2; } >> >> return r1; >> >>} >> > >> >Fatally flawed. >> > >> >>double rand1to7d() >> >>{ >> >> return rand1to5d()+(rand1to5d()1)/2; >> >>} >> > >> >Inefficient  uses 2 RNG calls, instead of 1. >> >> Forget inefficiency  it's worse than that. >> >> It's biased. > >Since when what being unbiased in the requirements?
Don't be ridiculous.
Unbiased was surely implied.
>> >>> Given a function that returns a random number between 15, write one >> >>> that returns a random number between 17 for the case when it should >> >>> be integer and for the case it can be real. > >I'm really trying hard, but I just can't see any mention >of the required distribution at all. Can you?
If that was the case, then your method is even more inefficient.
A simpler method for both the real case and the integer case would be to always return the number 3. Alternatively, call the random number generator for the range 1 to 5 and return _that_ value.
Of course it was implicit in the problem that unbiased results were required.
For the case of reals, you wouldn't have talked about gaps if you weren't trying to avoid lack of uniformity.
>Please get your argument straight before posting nonsense to >Usenet, I always do.
Your current response is copout, and you know it.
Admit your errors, don't try to obscure them  that would show some integrity.
quasi

