Re: distance function

• To: mathgroup at smc.vnet.net
• Subject: [mg68826] Re: distance function
• From: "Dana DeLouis" <dana.del at gmail.com>
• Date: Sun, 20 Aug 2006 04:43:44 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```> "Given a list of points in the plane, write a function that finds the

> set of all distances

> between the points."

Just something different.  For a small number of points, if you wish to draw
a graph, here's one way.

The function "GetEdgeWeights" will list all the distances also.

In[1]:=

Needs["DiscreteMath`Combinatorica`"]

In[2]:=

pts = {{0, 0}, {3, 0}, {5, 3}, {1, 5}};

In[3]:=

Dist = Norm /@ Apply[Subtract, KSubsets[pts, 2], {1}]

In[4]:=

g = ChangeVertices[CompleteGraph[Length[pts]], pts];

g = SetEdgeWeights[g, WeightingFunction -> Euclidean];

GetEdgeWeights[g]

In[7]:=

ShowGraph[g, GridLines -> Automatic,

VertexNumber -> True,

EdgeLabel -> Dist];

> In the book of Gaylord et al. (1996) there is one exercise which asks
> (see page 113)
>
> "Given a list of points in the plane, write a function that finds the
> set of all distances
> between the points."
>
> Although there is one solution, that solution makes use of the Table
> and Length commands.
>
> Is it a way to define the same function using Higher-Order functions