Re: Position within a list
- To: mathgroup at smc.vnet.net
- Subject: [mg32930] Re: Position within a list
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Wed, 20 Feb 2002 01:26:09 -0500 (EST)
- Organization: Universitaet Leipzig
- References: <a4t08v$igf$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
lst = RealDigits[Pi, 10, 10000][[1]];
pp = Position[
Split[lst],
First[
Sort[
Select[Split[lst],
Length[#] > 2 &],
Length[#1] > Length[#2] &
]
]
];
pos = pp[[1, 1]];
i = k = 0;
lstpos=
Catch[
Scan[
(i++; k += Length[#]; If[i === pos, Throw[k]]) &, Split[lst]
]
]
the position if the last 9 in the list of digits is lstpos and
should be 768 for six 9 digits.
Regards
Jens
Dana DeLouis wrote:
>
> 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
> = = = = = = = = = = = = = = = = =