MathGroup Archive 2003

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

Search the Archive

Re: Need a nice way to do this

  • To: mathgroup at smc.vnet.net
  • Subject: [mg40290] Re: Need a nice way to do this
  • From: Mark Fisher <mark at markfisher.net>
  • Date: Sun, 30 Mar 2003 04:08:08 -0500 (EST)
  • References: <b63r1a$3oc$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Here's my attempt:

Different[s_List] :=
   Module[{types, i},
     types = Union[s];
     Thread[(i /@ types) == 0] /. Equal -> Set;
     (i[#]++; Tr[i /@ DeleteCases[types, #]]) & /@ s
     ]

--Mark

Steve Gray wrote:
> 	Given a list consisting of only two distinct values, such as
> s={a,b,b,a,a,a,b,a,b,a,a}, I want to derive a list of equal length
> g={0,1,1,2,2,2,4,3,5,4,4}. The rule is: for each position
> 1<=p<=Length[s], look at list s and set g[[p]] to the number of
> elements in s to the left of p which are not equal to s[[p]].
> 	In a more general version, which I do  not need now, s would
> not be restricted to only two distinct values.
> 
> 	Thank you for any ideas, including other applications where
> this particular calculation is used. The current application is an
> unusual conjecture in geometry.
> 
> 



  • Prev by Date: Re: Need a nice way to do this
  • Next by Date: Re: Fit with lists instead of functions
  • Previous by thread: Re: Need a nice way to do this
  • Next by thread: Re: Need a nice way to do this