第三十四章-有限状态机
很快,第二场比赛开始了。
主持人简单的描述了一下规则,大概的意思就是,三十分钟讨论,需要交上一份简单的文字论述。之后每组进行十分钟的答疑,最后由评委评分。
接着主持人就公布了题目:
薯片工厂有着一套固定的流程生产薯片:煮熟,切片,清洗,油炸,沥油,加配料,包装等
同时,在这个过程中,有可能会出现某部分故障,或者机器重启等情况。
现在工厂需要设计一个程序来自动化制作薯片。如何编码能够让系统更加稳定?(忽略具体执行的部分,如薯片切片怎么切的实现)
各个地区的选手拿到题目,面面相觑。他们很多都学习了大量的算法,却没有多少应用的机会,在这方面并没有多大的经验。
唯独瀚安地区的选手,得意的笑了起来。原来,他们都是六年级的学生,他们特训的时候,老师教他们做了一个简单的请假系统。
他们想起来,请假的审批流程,好像跟这个有着一些同样的东西,于是他们一起讨论了起来。
而在其他队伍,包括瀚腾他们,都有些思路缺缺,正在苦思冥想。不过他们都是脑袋灵活的人,不一会就有了一些思路。
在赵钧霆他们队伍这边,黎芭拉和黎昊也是一筹莫展,转头齐刷刷的看着赵钧霆。
赵钧霆神秘地一笑:“各位,我有幸看过一本书,对于这个问题,我觉得我们还是能够,秒杀他们!”
“真的吗?你给我们说说你是怎么想的,肯定能赢得过他们的想法?”,黎芭拉有些不信,一年级的小朋友不可能是全能的吧~
“我相信你,赵钧霆,你给我们说说呗?”,黎昊却是非常相信他,他已经将钧霆王看作偶像一般的存在了。
“很简单啦,我边写出来边跟你们讲。”
很快,三十分钟就到了,瀚安区的选手信心满满的交上了答卷,瀚阳和瀚城的同学却有着忐忑。赵钧霆也是一脸淡定,看着黎昊把卷子交了上去。
各位评委互相传阅,眉头微皱。当那位拿到赵钧霆他们卷子的评委仔细看完这份答案后,猛的起身,站到其他人跟前,招呼他们一起看。
他们讨论了一圈,回到座位上坐定。
一个带着老款眼镜,眼角有些皱纹,头发稀疏的评委发话了。
“各位同学的回答,都很不错,但是略微有着稚嫩了。”,他停顿了一下,拿起一张答卷,站了起来:“唯有这一份卷子,我觉得是满分,是标准答案,有了它,我们不需要再进行接下来的环节。为了防止别人说我们评委组是不是收了好处,搞黑幕。我将这份答卷拿出来,与各位一起品鉴。”
场下一片哗然,瀚安区的同学惊喜不定:难道,是我们的卷子?可是我们虽然写的还可以,却没有到这种地步吧!
但是他们还是有些窃喜,觉得还是他们赢的概率比较高。除了他们,还能有谁?
一位西装革履,内衬格子衬衫的老师从那位老老师手中接过答卷,双手一挥。一个程序显现,试卷被扫描了一下,接着虚空中化处一堆数据流,往荧幕而去。
有限状态机的应用
有一种名为有限状态机的设计方法,可以将事件很好的概括出来。
题目描述的流程,具有有限的若干个状态,也具有有限的若干个事件。
首先,我们必须有且仅有一个开始的状态,我们可以对应到启动一个薯片自动制作机器。
其次,每一道薯片的制作工序,都能够归结为,由一个状态,因为某些事件跳转到了下一个事件。而假设事件正常,它就会进入下一道工序。事件是异常的,它就会进入一个错误的状态,不再进行流转。
假设这个过程工具被关闭了,那么我们只需要在重启时恢复状态即可。
要注意的是,这里的状态流转是一种调度程序,它只对一批薯片进行控制,而不是控制机器。工厂的生产机器可以用另一个程序去分配资源。
在答卷的下方,也简单的画了一个流程图。加了一个脚注:只要能够画出流程图,就能实现一个状态机。
众人非常震惊,虽然赵钧霆已经写得非常浅显,但是还是非常的晦涩难懂。比起其他人写的,类似给每个流程标注一个数字之类的写法,他这个显然是非常成熟的。
这个状态机的理论,其实是一个非常有名的设计理念。但是一般对于小学生而言,很少会听到这类东西。只有到大学,才有人能从图书馆,或者其他地方学习到。
毫无疑问,这场比赛又是赵钧霆他们的胜利。本来评委会视情况,将固定的十分奖励给表现良好的队伍,但是现在这种情况,他们做出了一个决定,瀚南县,再积十分!