0.5 ( G(h - 1, i - 1) + G(h - 1, i) ) should be 0.5 ( G(h - 1, i - 1) + G(h
- 1, i+1) )

i am not clear why the parents of a cup in upper row are consecutive?
Best Regards
Ashish Goel
"Think positive and find fuel in failure"
+919985813081
+919966006652


On Tue, Feb 28, 2012 at 10:43 AM, Gene <gene.ress...@gmail.com> wrote:

> G is just a helper function.  You can "in line" this function and
> eliminate it.
>
> When you do this, you'll end up with
>
> F(h, i) = 0.5 * (l + r)
>  where l = F(h-1,i-1) - C if 0 <= i-1 <= h-1 and F(h-1,i-1) > C else
> 0
>  and r = F(h-1,i) - C if 0 <= i <= h-1 and F(h-1,i) > C else 0
>
> Here l is the left parent's outflow and r is the right parent's.
>
> So you are always computing the h'th row in terms of the (h-1)'th.
> For many DPs this means you'll need 2 row buffers.  In this one you
> only need 1 element back in the current row. You can save this element
> in a single variable and get by with one buffer.  I.e. note l for a
> given value of i is always the previous value of r.  And for i=0, l is
> always 0 because there is no left parent.
>
> So you end up with
>
> f[0] = L; // fill in the first row
> for (ih = 1; ih <= h; ih++) { // loop thru rest of rows
>  double l = 0; // left parent outflow at ii=0 is always 0.
>  for (ii = 0; ii <= ih; ii++) { // loop thru columns
>    // new right parent outflow
>    double r = (ii < ih && f[ii] > C) ? f[ii] - C : 0;
>    f[ii] = 0.5 * (l + r);
>    l = r; // right parent is left of next row entry
>  }
> }
> return (0 <= i && i <= h) ? f[i] : 0;
>
> This is doing the same as Dave's code for all practical purposes. It's
> untested but ought to work.
>
> On Feb 27, 10:05 pm, Ashish Goel <ashg...@gmail.com> wrote:
> > Gene, your DP is what i was thinking of but in code i could not coreleate
> > G(h - 1, i - 1) + G(h - 1, i)  part (:
> > Best Regards
> > Ashish Goel
> > "Think positive and find fuel in failure"
> > +919985813081
> > +919966006652
> >
> >
> >
> >
> >
> >
> >
> > On Tue, Feb 28, 2012 at 7:50 AM, Gene <gene.ress...@gmail.com> wrote:
> > > G(h - 1, i - 1) + G(h - 1, 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.

Reply via email to