关于mathematica纯函数的一个问题
关于mathematica纯函数的一个问题
co = {{1,4},{1,3},{2,3},{2,4}}
co = Join[co,Map[Reverse,co]]
FindShortestTour[{1,2,3,4},
DistanceFunction -> (If[MemberQ[co,{#1,#2}],1,Infinity] &)]
我想知道If[MemberQ[co,{#1,#2}],1,Infinity] &这个纯函数的参数是什么,{#1,#2}到底指的是什么?
If[MemberQ[co, {#1, #2}], 1, Infinity] &这个纯函数的参数是{#1, #2}
{#1,#2}指的是相邻的两个点.
DistanceFunction -> (If[MemberQ[co, {#1, #2}], 1, Infinity] &)
定义:相邻的两个点的距离为1,不相邻的两个点的距离为Infinity.
定义4 个点
co = {{1, 4}, {1, 3}, {2, 3}, {2, 4}}
定义8 个点
co = Join[co, Map[Reverse, co]]
FindShortestTour[{1, 2, 3, 4},...
找到一个访问 {1, 2, 3, 4} 的最短路径.这个我咋去找这个纯函数作用的对象呢,If[MemberQ[co, {#1, #2}], 1, Infinity] &,符号&放到最后了,我就不知道#1,#2到哪里去找了mathematica的说明太少,只能根据有限的例子来体会。我认为,这个纯函数作用的对象是co中的{1, 2, 3, 4}四个点,即{1, 4}, {1, 3}, {2, 3}, {2, 4}。用co = {{1, 4}, {1, 3}, {2, 3}, {2, 4}}co = Join[co, Map[Reverse, co]]FindShortestTour[{1, 2, 3, 4},DistanceFunction -> (If[MemberQ[co, {#1, #2}], 1, Infinity] &)]co[[Last[%]]]Graphics[Line[%]]可以看出来。