@rishab, here it generates numbers which are powers of 2 until  n gets to 0

int bit_generator(); // function which returns 1 and 0 with equal
probabilities

int generator(int n)
{
   int generated_num[10],i;
   int lg = (int)floor(log(n));
   n -= pow(lg,2);
   int m = 0;
   i=0;
   if(n==0)return 0;
   while(i<lg)
   {
       m*=10;
       m+=bit_generator();
       i++;
   }

   return m + generator(n);
}


surender
On Fri, Jul 15, 2011 at 10:58 PM, Rishabh Maurya <[email protected]>wrote:

> but suppose you have to generate numbers between [1,513] then also it would
> generate numbers them each with probability 1/1024 which could make a big
> difference and I feel the above solution to be incorrect . May be we could
> think of a better one .
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to