Re: neat way to program minimum of sum

• To: mathgroup at smc.vnet.net
• Subject: [mg75139] Re: [mg75072] neat way to program minimum of sum
• From: anguzman at ing.uchile.cl
• Date: Wed, 18 Apr 2007 05:03:55 -0400 (EDT)
• References: <200704170008.UAA08409@smc.vnet.net>

```Hello:
I think you mean:
f(t) = min{n>0 : X1 + ... + Xn > t}
I believe that your current implementation calls Random[] too many
times. That is, it tries with a random list of "i" elements and if it
doesn't fullfill the request in the while loop, generates another list
of "i+1" elements.
Unless this feature is  absolutely necessary
I think that a more compact and efficient way could be this recursive
definition:

f[t_?(# < 0 &)] = 0
f[t_?(#1 >= 0 & )] := 1 + f[t - Random[]];

It calls Random[] the strictly necessary number of times. The only
problem is that it's defined as zero for negative values. I believe
that these variables are called negative binomials.
Hope this could help

Atte. Andres Guzman

P. Kaminski" <cgenie at gmail.com> ha escrito:

> Hi
> I need to program the following function:
>
> f(t) = max{n>0 : X1 + ... + Xn > t}
>
> where Xi are some random numbers. I've done it using Module and Wile:
>
> x[i_]:=x[i]=Random[]
> f[t_]:=f[t]=Module[{i}, i=1; While[Total[Array[x, i]]<=t, i++]; Re=
turn[i-1]];
>
> This works but requires Module and three instructions within. Can it
> be simplified to a true one-liner, preferably with some functional
> programming trick?
>
> P. Kaminski
>
>

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

```

• Prev by Date: Re: differentiate a function of a function
• Next by Date: Re: minmum of a function
• Previous by thread: Re: neat way to program minimum of sum
• Next by thread: Re: neat way to program minimum of sum