MathGroup Archive 2004

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

Search the Archive

Re: number of switches

  • To: mathgroup at smc.vnet.net
  • Subject: [mg47544] Re: number of switches
  • From: bobhanlon at aol.com (Bob Hanlon)
  • Date: Thu, 15 Apr 2004 03:40:53 -0400 (EDT)
  • References: <c5j6vd$qqo$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

After sending my first response I thought of a much faster method:

nbrSwitches1[x_?VectorQ] := 
    Length[x //. {s___, a_, a_,e___} :> { s,a,e}]-1;

nbrSwitches1 /@ 
  {{1,1,0,1},{1,1,0,0},{1,0,1,0,1}}

{2,1,4}

nbrSwitches2[x_?VectorQ] := 
    (Length[Split[x]]-1);

nbrSwitches2 /@ 
  {{1,1,0,1},{1,1,0,0},{1,0,1,0,1}}

{2,1,4}

data=Table[Random[Integer], {2000}];

nbrSwitches1[data]//Timing

{16.59 Second,1031}

nbrSwitches2[data]//Timing

{0.01 Second,1031}


Bob Hanlon

In article <c5j6vd$qqo$1 at smc.vnet.net>, "fake" <fake at fake.it> wrote:

<< Consider the lists {1,1,0,1} and {1,1,0,0},{1,0,1,0,1}.
The first sequence (1101) switches 2 times (#2digit~#3digit,
#3digit~#4digit}, the second (1100) 1 time, the third 10101 4 times.

I have the following problem.
Consider a list of binary digits. Which is the easiest way to count the
number of switches of the list (using Mathematica commands)?


  • Prev by Date: Re: number of switches
  • Next by Date: RE: number of switches
  • Previous by thread: Re: number of switches
  • Next by thread: RE: number of switches