Excel 求解最短路径 题目如图所示,在线等,求大神给出过程和公式

期末作业,题目如图所示,在线等,求大神给出过程和公式。
2024年11月18日 18:42
有3个网友回答
网友(1):

  1. 将原始数据中的对角数据设置成0。也就是说,到原地的距离为0。

  2. 将其它不通的数据设成较大的数,如2000。

     

  3. 将计算选项设置为“启用迭代计算”

  4. 选中C5单元格(对角线左上方第一个待定数据),输入公式:

    =MIN(INDEX($C$3:$N$14,ROW()-2,COLUMN()-1)+INDEX($C$3:$N$14,COLUMN()-2,COLUMN()-1),INDEX($C$3:$N$14,ROW()-2,COLUMN())+INDEX($C$3:$N$14,COLUMN()-2,COLUMN()),INDEX($C$3:$N$14,ROW()-2,COLUMN()+1)+INDEX($C$3:$N$14,COLUMN()-2,COLUMN()+1),INDEX($C$3:$N$14,ROW()-2,COLUMN()+2)+INDEX($C$3:$N$14,COLUMN()-2,COLUMN()+2),INDEX($C$3:$N$14,ROW()-2,COLUMN()+3)+INDEX($C$3:$N$14,COLUMN()-2,COLUMN()+3),INDEX($C$3:$N$14,ROW()-2,COLUMN()+4)+INDEX($C$3:$N$14,COLUMN()-2,COLUMN()+4),INDEX($C$3:$N$14,ROW()-2,COLUMN()+5)+INDEX($C$3:$N$14,COLUMN()-2,COLUMN()+5),INDEX($C$3:$N$14,ROW()-2,COLUMN()+6)+INDEX($C$3:$N$14,COLUMN()-2,COLUMN()+6),INDEX($C$3:$N$14,ROW()-2,COLUMN()+7)+INDEX($C$3:$N$14,COLUMN()-2,COLUMN()+7),INDEX($C$3:$N$14,ROW()-2,COLUMN()+8)+INDEX($C$3:$N$14,COLUMN()-2,COLUMN()+8),INDEX($C$3:$N$14,ROW()-2,COLUMN()+9)+INDEX($C$3:$N$14,COLUMN()-2,COLUMN()+9))

    公式看着挺复杂,实际上分解开很好理解。分别计算D—N列中第三行和第一行数据的和,再找出其最小值。这样写公式,是为了后面的复制粘贴方便。

    解释:C5是A城到C城的距离,分别计算出A城和C城到B、D、E等城镇的距离之和,再找出它们的最小值,作为A城到C城的最小值。

  5. 将C5单元格的数值写到E3单元格中。

  6. 复制C5单元格的公式到C6,再把C6的数值写到F3中,以此类推,直到C14写到N3中。

  7. 复制C5单元格的公式到D6,并修改最后一个求和计算公式为:

    INDEX($C$3:$N$14,ROW()-2,COLUMN()-3)+INDEX($C$3:$N$14,COLUMN()-2,COLUMN()-3)

    也就是将最后的两个+9,改为-3,然后重复第5、6步骤,当然,所说的步骤,是指修改D列公式,写到F4、G4......N4单元

  8. 复制D6单元格的公式到E7,并修改倒数第二个求和计算公式为:

  9. INDEX($C$3:$N$14,ROW()-2,COLUMN()-4)+INDEX($C$3:$N$14,COLUMN()-2,COLUMN()-4)

    也就是将两个+8改为-4,然后重复第5、6步骤。

  10. 一直做下去,直到完成最后右下角的一个待定数据。

     

    图片放不上去,只好加附件了。

网友(2):

求哪点到哪点,题目都没给清楚。
单源点用迪杰斯特拉(Dijkstra)算法
任意两点弗洛伊德(Floyd)算法,网上自己看,或找相关书籍。

网友(3):

可以参考一下这里,不知道有没有帮助:

http://course.tju.edu.cn/tddg/practice/software/excel/excel/network/

 

你这个问题是下面这本书中的其中一个技巧,具体操作请购买原书P485页:

Excel数据处理与分析实战技巧精粹 Excel Home编著 人民邮电出版社 2008

附件公式齐全,但过程需要参考原书的