Re: Re: Complement replacement
- To: mathgroup at smc.vnet.net
- Subject: [mg58620] Re: Re: [mg58608] Complement replacement
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Sun, 10 Jul 2005 16:51:38 -0400 (EDT)
- Reply-to: hanlonr at cox.net
- Sender: owner-wri-mathgroup at wolfram.com
This looks at the effect of removing the redundancy from pp before using the complement mechanism pp=Table[Random[Integer,{1,1000}],{1000}]; r=Range[1000]; Timing[Length[c1= Complement[r,pp]]] {0.000913 Second,387} Timing[Length[c2= Select[r,!MemberQ[pp,#]&]]] {0.395094 Second,387} Timing[Length[c3= Cases[r,_?(!MemberQ[pp,#]&)]]] {0.400645 Second,387} Timing[Length[c4= DeleteCases[r,_?(MemberQ[pp,#]&)]]] {0.435794 Second,387} With Complement, removing the redundancy in pp first is detrimental to the overall timing Timing[p=Union[pp];Length[c5= Complement[r,pp]]] {0.00131 Second,387} However, the alternatives show a net improvement Timing[p=Union[pp];Length[c6= Select[r,!MemberQ[p,#]&]]] {0.261277 Second,387} Timing[p=Union[pp];Length[c7= Cases[r,_?(!MemberQ[p,#]&)]]] {0.267076 Second,387} Timing[p=Union[pp];Length[c8= DeleteCases[r,_?(MemberQ[p,#]&)]]] {0.261073 Second,387} c1==c2==c3==c4==c5==c6==c7==c8 True Bob Hanlon > > From: Bob Hanlon <hanlonr at cox.net> To: mathgroup at smc.vnet.net > Date: 2005/07/10 Sun AM 07:48:12 EDT > Subject: [mg58620] Re: [mg58608] Complement replacement > > pp=Table[Random[Integer,{1,1000}],{1000}]; > > r=Range[1000]; > > Timing[Length[c1= > Complement[r,pp]]] > > {0.000934 Second,368} > > Timing[Length[c2= > Select[r,!MemberQ[pp,#]&]]] > > {0.39567 Second,368} > > Timing[Length[c3= > Cases[r,_?(!MemberQ[pp,#]&)]]] > > {0.401009 Second,368} > > Timing[Length[c4= > DeleteCases[r,_?(MemberQ[pp,#]&)]]] > > {0.401319 Second,368} > > c1==c2==c3==c4 > > True > > > Bob Hanlon > > > > > From: konstantpi at mail15.com To: mathgroup at smc.vnet.net > > Date: 2005/07/10 Sun AM 05:12:22 EDT > > Subject: [mg58620] [mg58608] Complement replacement > > > > hi > > in the list: > > pp=Table[Random[Integer, {1, 1000}], {i, 1000}]; > > how could i know which numbers from 1 to 1000 does not exist in the > > pp List. > > but without using: > > Complement[Table[i,{i,1000}],pp] > > regards > > > > > Bob Hanlon Chantilly, VA