作业帮 > 数学 > 作业

关于mathematica纯函数的一个问题

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/25 02:46:08
关于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[%]] 可以看出来。