MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

RE: Re: question in mathematica

  • To: mathgroup at smc.vnet.net
  • Subject: [mg80148] RE: [mg80143] Re: question in mathematica
  • From: "Harvey P. Dale" <hpd1 at nyu.edu>
  • Date: Tue, 14 Aug 2007 06:49:50 -0400 (EDT)
  • References: <fa11b990e477.46baf2d3@bgu.ac.il> <200708130842.EAA27991@smc.vnet.net>
  • Reply-to: "Harvey P. Dale" <hpd1 at nyu.edu>

Here's another way:



maxlst[l_List] := Module[{l2 = l, i, len}, i = 2; len = Length[l2];
While[i <= len, l2[[i]] = Max[l2[[i]], l2[[i-1]]]; i++];
Transpose[Tally[l2]][[1]]]



ls={9,2,10,3,14,9}



maxlst[ls]



{9,10,14}



            Best,



            Harvey



Harvey P. Dale

University Professor of Philanthropy and the Law

Director, National Center on Philanthropy and the Law

New York University School of Law

Room 206A

110 West 3rd Street

New York, N.Y. 10012-1074

tel: 212-998-6161

fax: 212-995-3149



________________________________

From: m.r at inbox.ru [mailto:m.r at inbox.ru]
Sent: Monday, August 13, 2007 4:42 AM
To: mathgroup at smc.vnet.net
Subject: [mg80148] [mg80143] Re: question in mathematica

On Aug 11, 1:43 am, Andrzej Kozlowski <a... at mimuw.edu.pl> wrote:
> First, please send such question to the MathGroup,
>
> mathgr... at smc.vnet.net
>
> not me personally. (I really have desire, tiem or ability to replace
> the enitre MathGroup.)
> So I have decided to post this question to the MathGroup in case
> someone else finds it interesting.
>
> Also, there is something about this question and the earlier you sent
> me that make sme suspicious.  What do you say "you need to use
> recursion and pattern matching, Select and Join"? This sounds to me
> like some sort of test problem so I have decided to answer it but
> without using any of these functions (although it may not be the
> simplest way to do this). So here is my answer:
>
>   ls = {9, 2, 10, 3, 14, 9};
>
> Reverse[Last[Last[Reap[NestWhile[With[{a = First[Ordering[#, -1]]},
> Sow[#[[a]]]; Take[#, a - 1]] &,ls,Length[#] > 0 &]]]]]
>
> {9, 10, 14}
>
> On 10 Aug 2007, at 10:12, Ivan Egorov wrote:
>
> > I have one more question.
>
> > Write a function maxima[lis_List] which, given a list of numbers,
> > produces a list of those
>
> > numbers greater than all those that precede them. For example
>
> > maxima[{ 9, 2, 10, 3, 14, 9}] returns { 9, 10, 14}. You need to use
> > recursion, pattern matching,
>
> > Select and Join.
>
> > =E2=80=8E

I'll make it easier for myself and use pattern matching:

In[1]:= ReplaceList[{9, 2, 10, 3, 14, 9},
  {s___, x_, ___} /; Max[s] < x :> x]

Out[1]= {9, 10, 14}

Maxim Rytin
m.r at inbox.ru



  • Prev by Date: Re: question
  • Next by Date: problem using Ersek's RootSearch
  • Previous by thread: Re: question in mathematica
  • Next by thread: Re: RE: Re: question in mathematica