前言:
眼前兄弟们对“过桥时间最短算法”大致比较关注,兄弟们都需要剖析一些“过桥时间最短算法”的相关知识。那么小编也在网上汇集了一些关于“过桥时间最短算法””的相关资讯,希望看官们能喜欢,看官们一起来了解一下吧!1 | 题目
在一个黑夜里,有四个人需要过桥,每次只能通过两人,其中一人必须拿着手电筒,但只有一个手电筒,所以过桥后必须有一个人拿手电筒回来,其他人才能继续过桥。四人过桥的速度分别为:1、2、5、10(分钟),要最慢的那个人过了桥才算真正过桥。编写程序求这四个人过桥所花的最短时间。
2 | 设计分析
采用贪心算法,该题目只有两种贪心策略。先对n个人过桥的时间从小到大排序。
第一种:让第1个人分别带第n-1个人和第n个人过桥,用时a[n-1]+a[n]+2*a[1]。
第二种:让第1个人和第2个人先过桥,第1个人回来送手电筒,让第n、n-1个人过桥,然后第2个人回来送手电筒,用时a[n]+a[1]+2*a[2]。
3 | 创建功能或功能块
创建功能块FB,命名为“CrossTheBridge”。
4 | 定义接口变量
具体接口变量定义见下图:
定义数据类型为整型数的一维数组变量#statTimes,分别存储四个人过桥的速度,初始值分别为1、2、5、10,单位分钟。
5 | 程序代码
编写程序代码。如下图:
注意程序中的贪心算法,策略1和策略2。
6 | 代码测试
在循环OB中调用FB-“CrossTheBridge”,调用时会自动创建背景数据块,命名为“InstCrossTheBridge”,该背景数据块可以用来监视和修改数据。转至在线并监控程序。如下图:
得到结果:四个人过桥所花最短时间为17分钟。
7 | 总结
学习使用WHILE循环语句;
学习使用IF..ELSE条件语句;
学习组合赋值的使用;
学习EXIT语句在循环中的作用。
- END -
参见下图:
旧款
6ES7513-1RL00-0AB06ES7515-2RM00-0AB0
最高FW2.9
新款
6ES7513-1RM03-0AB06ES7515-2RN03-0AB0
最高FW3.0
新的显示面板
和标准CPU统一显示面板,更耐用显示面板响应速度更快面板固件集成于CPU,无需单独更新固件
统一的CPU显示面板,更可靠,操作更便捷!
采用新芯片的1500冗余CPU,性能大幅度提升,性价比进一步凸显,可以更好满足各种应用的需求!后面我们还将介绍FW3.0给1500H系列CPU带来的功能提升,也敬请关注。
标签: #过桥时间最短算法