No...if a = b = 5 then return 9 doesn't make any sense.

n - (a-b) is very much fine.
for n = 5
Total # of cases when a - b = 0; 5 return 5
Total # of cases when a-b = 1; 4   return 4
Total # of cases when a-b = 2; 3   return 3
and so on.



On Mon, Aug 29, 2011 at 10:56 PM, nishaanth <nishaant...@gmail.com> wrote:

> @Don...Nice solution.. But the return statement should be a+b-1
>
>
> On Mon, Aug 29, 2011 at 10:33 PM, Don <dondod...@gmail.com> wrote:
>
>> If you draw the nxn grid and assign a value to each diagonal:
>>
>> (For n = 5)
>>
>>  ----------b
>> |  12345
>> |  2345
>> |  345
>> |  45
>> |  5
>> a
>>
>> You want the result to be the orthogonal distance from the diagonal.
>> That is what the formula computes.
>> Don
>>
>> On Aug 29, 11:28 am, Piyush Grover <piyush4u.iit...@gmail.com> wrote:
>> > 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 <dondod...@gmail.com> 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 <piyush4u.iit...@gmail.com> 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 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.
>>
>> --
>> 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.
>>
>>
>
>
> --
> S.Nishaanth,
> Computer Science and engineering,
> IIT Madras.
>
> --
> 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.
>

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