Re: All componens different
- To: mathgroup at smc.vnet.net
- Subject: [mg112015] Re: All componens different
- From: Patrick Scheibe <pscheibe at trm.uni-leipzig.de>
- Date: Tue, 24 Aug 2010 06:15:41 -0400 (EDT)
Hi, faster and shorter is d2[v_] := Length[Union[v]] === Length[v] Try something like data = RandomSample[Range[10000], 10000]; d1[v_] := ! Or @@ Flatten[ Table[v[[i]] == v[[k]], {i, 1, Length[v]}, {k, i + 1, Length[v]}]]; d2[v_] := Length[Union[v]] === Length[v]; AbsoluteTiming[#[data]] & /@ {d1, d2} gives here {{51.339028, True}, {0.001555, True}} Cheers Patrick On Mon, 2010-08-23 at 02:51 -0400, Dr. Wolfgang Hintze wrote: > 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 > >