感觉算法不手写出来,体会不了它的实际用处。所以还是继续将算法全部手写出来。要用GUI展示出算法的过程且不能用IDE编辑器(对IDE有恐惧症),用ubuntu命令行安装运行layabox(https://github.com/layabox/layaair),竟然一下就通了,直接修改一下src/samples/index.ts 就能得到所需的效果。正合我意。
- 问题:汽车工厂有两条生产线,每条生产线的各个步骤功能都是一样,可互相替换,但所需的时间不一样;从一条装配线某步骤转移到另一条装配线的下一个步骤需要时间 ;问生产一辆汽车最快的时间是多少?
- 自顶向下的递归函数:每个装配站i,j(生产线i的某个步骤j)所需最小的时间:f(i,j) = min(
同一条生产线的上一步骤所需最小时间 +转移时间0+该装配站所需时间a(i,j);
不同一条生产线的上一步骤所需最小时间 +转移时间+该装配站所需时间a(i,j); )
3 自底向上解决办法:需要存储每个装配站(i,j)所需最小时间 ;当装配站为第一步骤时,则直接为该装配站时间,否则使用递归函数,参数为上一步骤所需最小时间,转移时间,本站时间,得出本站所需最小时间
4 结果
源代码:src/samples/algorith/C151FastestStationWay.ts · Bob/LayaAir - Gitee.com
参考:
2 https://ldc2.layabox.com/doc/?nav=zh-ts-3-0-7