Isn't it the same of adding two random numbers????

When you just add two random numbers, you tend to normalize them. If
you simply multiply one
of them by 5 before adding with the other, you'll end up normalizing
them the same way...



On 18 set, 18:45, eSKay <catchyouraak...@gmail.com> wrote:
> okay now I get it.
>
> but then
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> int i;
> do
> {
>   i = 5 * (rand5() - 1) + rand5();  // i is now uniformly random
> between 1 and 25
>
> } while(i > 7);
>
> return i;
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> should be fine. isn't it??
>
> On Sep 18, 6:06 pm, Dave <dave_and_da...@juno.com> wrote:
>
> > What is wrong with using i = rand5() + rand5() instead of i = 5 * rand5
> > () + rand5() is that the former is not uniformly distributed between 1
> > and 10, as claimed. First, 1 never occurs. 2 occurs 1 out of 25 times,
> > 3 occurs 2 out of 25, etc. (Think of rolling two ordinary dice.)
>
> > Dave
>
> > On Sep 18, 6:19 am, eSKay <catchyouraak...@gmail.com> wrote:
>
> > > one of the solutions given 
> > > athttp://stackoverflow.com/questions/137783/given-a-function-which-prod...
> > > is:
>
> > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > int i;
> > > do
> > > {
> > >   i = 5 * (rand5() - 1) + rand5();  // i is now uniformly random
> > > between 1 and 25} while(i > 21);
>
> > > // i is now uniformly random between 1 and 21
> > > return i % 7 + 1;  // result is now uniformly random between 1 and 7
> > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> > > Why do we need to go for all this trouble??
>
> > > Why not:
> > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > int i;
> > > do
> > > {
> > >   i = rand5()  + rand5();  // i is now uniformly random between 1 and
> > > 10} while(i > 7);
>
> > > // i is now uniformly random between 1 and 7
> > > return i;
> > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > Whats wrong with it??
>
> > > On Sep 9, 12:34 am, Ramaswamy R <ramaswam...@gmail.com> wrote:
>
> > > > Generate the random number 7 times. Sum them all and divide by 5.
> > > > Theoritically it should be evenly distributed over 1-7. But owing to 
> > > > random
> > > > number generators characteristics the sum of rand(5) called 7 times may 
> > > > not
> > > > be perfectly evenly distributed over 1-7.
> > > > A nice discussion on some neat options is available here 
> > > > -http://stackoverflow.com/questions/137783/given-a-function-which-prod...
>
> > > > Rejection technique is pretty standard for this and yet simple.
>
> > > > On Mon, Sep 7, 2009 at 8:56 AM, ankur aggarwal 
> > > > <ankur.mast....@gmail.com>wrote:
>
> > > > >  Given a random number generator that generates numbers in the range 
> > > > > 1 to
> > > > > 5, how can u create a random number generator to generate numbers in 
> > > > > the
> > > > > range 1 to 7. (remember that the generated random numbers should 
> > > > > follow a
> > > > > uniform distribution in the corresponding range)
>
> > > > --
> > > > Yesterday is History.
> > > > Tomorrow is a Mystery.
> > > > Today is a Gift! That is why it is called the Present :).
>
> > > >http://sites.google.com/site/ramaswamyr-Hidequoted text -
>
> > > - Show quoted text -

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/algogeeks
-~----------~----~----~----~------~----~------~--~---

Reply via email to