Re: Position within a list
- To: mathgroup at smc.vnet.net
- Subject: [mg32934] Re: [mg32920] Position within a list
- From: Tomas Garza <tgarza01 at prodigy.net.mx>
- Date: Wed, 20 Feb 2002 01:26:14 -0500 (EST)
- References: <200202190730.CAA18827@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
I don't know about "elegant", but a short solution could be as follows (notice I'm taking the first 100,000 digits of Pi, instead of 10,000): In[1]:= lst = RealDigits[Pi, 10, 100000][[1]]; In[2]:= Timing[Position[Length /@ Split[lst], Max[Length /@ Split[lst]]]] Out[2]= {0.82 Second, {{695}}} This is quite fast, but speed can be much improved by first assigning a name to the list of lengths, thus avoiding a duplication of the operation: In[3]:= a = Length /@ Split[lst]; Timing[Position[a, Max[a]]] Out[3]= {0.05 Second, {{695}}} Tomas Garza Mexico City ----- Original Message ----- From: "Dana DeLouis" <ng_only at hotmail.com> To: mathgroup at smc.vnet.net Subject: [mg32934] [mg32920] Position within a list > Hello. A long time ago someone posted an elegant solution, but I can not > find it in the Archives. > Given a list that may have repeating data, this returned the character that > was repeated the most, and its position.. > > The example given was a list of the first 10,000 digits of Pi. I believe > the answer was that the number 9 was repeated 6 times around position > 700 or 800. > The function was very short and elegant. > I don't believe the Split function was used, but I might be wrong. > > Does anyone know how to do this? Thank you. > > lst = RealDigits[Pi,10,10000][[1]]; > > The list would have... > {3, 1, 4, 1, 5, 9, 2, 6, etc) > > > -- > Dana DeLouis > Windows XP & Mathematica 4.1 > = = = = = = = = = = = = = = = = = > > > >
- References:
- Position within a list
- From: "Dana DeLouis" <ng_only@hotmail.com>
- Position within a list