Re: All componens different
- To: mathgroup at smc.vnet.net
- Subject: [mg112000] Re: All componens different
- From: Sseziwa Mukasa <mukasa at jeol.com>
- Date: Tue, 24 Aug 2010 06:12:56 -0400 (EDT)
On Aug 23, 2010, at 2:51 AM, 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?
I don't know about efficiency (but Sort should be order N*LogN (N==Length[v]) and Split order N, your expression is order N^2, the two solutions should be equivalent in memory used) but I'd solve the problem this way
d2[v_]:==Length[Split[Sort[v]]]====Length[v]
Alternatively
d3[v_]:==Union[v]====Sort[v]
but I don't know the time or space complexity of Union.
Regards,
Ssezi