It uses 30 random bits from f() to build a 30-digit number which will
be in the range 0..2^30. 2^30 is 1,073,741,824. p*2^32 is the number
of values in that range which should produce the result 0.
Don

On Sep 12, 10:48 am, siddharth srivastava <akssps...@gmail.com> wrote:
> On 12 September 2011 20:49, Don <dondod...@gmail.com> wrote:
>
> > For particular values of p we might be able to do better, but for
> > unknown values of p, I can't think of anything better than this:
>
> > int g(double p)
> > {
> >  int n = 0;
> >  for(int i = 0; i < 30; ++i)
> >    n += n+f();
> >  return n > (int)(p*1073741824.0);
> > }
>
> explain the magic numbers please ;)
>
>
>
>
>
> > On Sep 12, 9:55 am, JITESH KUMAR <jkhas...@gmail.com> wrote:
> > > Hi
> > > You are given a function f() that returns either 0 or 1 with equal
> > > probability.
> > > Write a function g() using f() that return 0 with probability p (where
> > 0<p<1
> > > )
>
> > > --
> > > *Regards
> > > Jitesh Kumar*
>
> > --
> > 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?hl=en.
>
> --
> Regards
> Siddharth Srivastava

-- 
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?hl=en.

Reply via email to