@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.