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
> like Outer, MapThread etc?