I understand what you are doing in the loop but return statement is not clear to me. Can you explain.
On Mon, Aug 29, 2011 at 9:48 PM, Don <[email protected]> wrote: > int custRand(int n) > { > int a,b; > do > { > a = rand(n); > b = rand(n); > } while(a < b); > return n - a + b; > } > > On Aug 29, 10:48 am, Piyush Grover <[email protected]> wrote: > > Given a function rand(n) which returns a random value between 1...n > assuming > > equal probability. > > Write a function CustRand(n) using rand(n) which returns a value between > > 1...n such that > > the probability of occurrence of each number is proportional to its > value. > > > > I have a solution but wondering if I can get better than this or some > other > > approaches: > > > > CustRand(n){ > > > > sum = n*(n+1)/2; > > > > a = rand(sum); > > for(i = 1; i <= n; i++){ > > h = i*(i+1)/2; > > l = i*(i-1)/2; > > if(a <= h && a > l) > > return i; > > } > > > > } > > -- > 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.
