Re: All componens different
- To: mathgroup at smc.vnet.net
- Subject: [mg112025] Re: All componens different
- From: "Dr. Wolfgang Hintze" <weh at snafu.de>
- Date: Wed, 25 Aug 2010 06:04:33 -0400 (EDT)
- References: <i4t5qb$g2q$1@smc.vnet.net>
"Dr. Wolfgang Hintze" <weh at snafu.de> schrieb im Newsbeitrag news:i4t5qb$g2q$1 at smc.vnet.net... > Given a list v of natural numbers I'm looking for a function d[v_] > that > returns True if all components are different and False otherwise. > > One solution is > > d1[v_] := ! Or @@ Flatten[Table[v[[i]] == v[[k]], {i, 1, Length[v]}, > {k, i + 1, Length[v]}]] > > Can you find more efficient (and elegant) solutions? > > Regards, > Wolfgang > > Thank you all for the various solutions proposed. Here's a brief list: The by far most frequent solution was d2[v_]:=Length[Union[v]]==Length[v] Some also misunderstood my question by proposing (all equal instead of all different) d4[v_]:=Length[Union[v]]==1 Other related proposals were d5[v_]:= Length[Split[Sort[v]]] == Length[v] d6a[v_]:= Length[v] == Length[DeleteDuplicates[v]] d6b[v_]:= v === DeleteDuplicates[v] d7[v_]:= SameQ[Length[Union[v]], Length[v]] d8[v_]:= LeafCount[v] - 1 == Length[v] Ray's solution is probably the most "literary" one (because we are looking for complete unequality, but it is slower on my computer) d3[v_]:=Unequal@@v Thanks again and regards, Wolfgang