跟着《植物大战僵尸》理解概念之大数据与云计算01——大数据的概念和特点
本文以植物大战僵尸的生存无尽模式,来理解大数据(含场景大数据、时空大数据)以及大数据技术、云计算的概念。


大数据与云计算是一枚硬币的正反面。关于大数据与云计算的关系,后面再说。
将在生存无尽模式中,如何消灭海量全屏僵尸这一问题视为大数据处理计算问题。将实战中植物(不止是阵型中的植物)的安排与使用理解为大数据问题。
谷歌在2003年发表论文《Google File System》、2004年发表论文《Google Bigtable》、2006年发表论文《Google MapReduce》这三篇论文奠定了大数据和云计算的基本框架,也引爆了学术界的大数据和云计算潮流和工业界的大数据和云计算实际应用趋势。植物大战僵尸是2009年的游戏,所以这个游戏如果真的有一些大数据和云计算思想的体现,也不是匪夷所思的事。
大数据的概念
大数据就是海量数据或巨量数据,其规模巨大到无法通过目前主流的计算机系统在合理时间内获取、存储、管理、处理并提炼以帮助使用者决策。
植物大战僵尸的生存无尽模式,从51Flag开始,就不能像泳池困难生存模式一样,两列机枪射手,一列火炬树桩,两列磁力菇即可轻松通关。从100Flag之后,僵尸的出怪数量更多。由于很多时候无法在合理时间内消灭大量的红眼巨人僵尸,所以智慧树提醒我们,使用冰川菇冷却拖时间,或者使用图4中的地刺王拖慢红眼僵尸的行进速度,等待玉米加农炮恢复成可发射玉米导弹的状态。当然,如果带植物的选择不紧张的话,可以带炮灰四件套(小喷菇、花盆、阳光菇、胆小菇)来阻挡红眼巨人僵尸的脚步。
大数据的特点

说完大数据的概念,再来阐述一下大数据的特点,大数据的特点是4V+1C。如图3所示。
大数据的第一个特点,数据量大(Volume)——存储的数据量巨大,PB级别是常态,因而对其分析的计算量也大。
拿植物大战僵尸的生存模式举例。生存无尽模式和生存泳池困难模式的背景是一样的。都是每两个Flag换一种僵尸组合。但生存泳池困难模式出现巨人僵尸时,两个Flag最多出现10个巨人僵尸(好像是7个)。而生存无尽,没有红眼巨人僵尸,只有白眼巨人僵尸时,两个Flag至少出现30多个巨人僵尸。巨人僵尸的血量很高。这么多巨人僵尸,消灭他们的难度也增加了。
智慧树曾经提醒我们,遇到矿工僵尸,可以使用磁力菇。但生存无尽模式中,那么多的橄榄球僵尸、铁桶僵尸、铁网门僵尸、矿工僵尸、跳跳僵尸,数量实在是太多了。要知道一个磁力菇一次只能吸一个金属物件,每次消化吸收的金属物件都需要时间,所以,无尽生存模式,使用磁力菇根本无法阻挡矿工僵尸。
大数据的第二个特点,多样(Variety)——数据的来源及格式多样,数据格式除了传统的结构化数据之外,还包括半结构化和非结构化数据,比如用户上传的音频和视频内容。而随着人类活动的进一步拓宽,数据的来源更加多样。
常规数据和图表不是一种数据,防御性的叶子伞(萝卜伞)和玉米加农炮也不是同一种类型的数据(植物类型)。生存泳池困难模式不会出现蹦极僵尸,也不会出现会直接炸毁植物的玩偶匣僵尸(我没遇到过,也没在网上看到别人遇到过)。生存泳池困难模式每两个Flag要面对的是随机选择的7种或8种僵尸,而生存无尽模式每两个Flag要面对随机选择的10~12种僵尸。另外,红眼巨人僵尸只在生存无尽模式中出现,在生存泳池困难模式中没有。
大数据的第三个特点,价值密度低(Value)——在成本可接受的条件下,通过快速采集、发现和分析,从大量、多种类别的数据中提取价值的体系架构。
如何理解大数据的价值密度低。从价值密度低的定义我们可以看出,大数据要分两种情况讨论。分别是单一类别的大数据和多类别的大数据。
第一种是单一类别的大数据,以智慧树举例。智慧树前50英尺的时候,每一条智慧都很有智慧,意味着长高的每一英尺,价值密度都很高。但是51~99英尺高的时候,话是一样的。100英尺时的智慧是有价值的,101~499又都一样了,500多了一句新的,501~999由一样,1000是最后一条智慧,1001和以后,又是都一样。所以,智慧树前50英尺高的时候,价值密度很高,从1000英尺以及以后,价值密度就低了。因为同一类别的大数据,价值密度有上限,所以,大数据的量越大,价值密度越底。因为大数据是规模巨大的海量和巨量数据。
第二种是多类别大数据的价值密度低。以植物大战僵尸的无尽生存模式打到多少Flag获得的经验和知识为例。将50个Flag后,每两个Flag面对的从26种僵尸中随机选择大约11种僵尸的某一组合该怎么处理视为某一类别的大数据。由于存在多种组合,所以是多类别的大数据。

玩家如果有心获取数据中的价值(比如知识),可以在使用图4所示的阵型打到300个Flag时,明白以下知识——
僵尸图鉴中显示一共有26种僵尸。植物大战僵尸大概从50Flag之后,每两个Flag是在26种僵尸中随机选择大概11种僵尸(僵王博士和雪橇车小队僵尸在无尽生存模式中不出现)。泳池顶满的阵型要小心,如果面对的僵尸有玩偶匣僵尸,那么泳池的忧郁菇被玩偶匣僵尸炸掉,但被炸掉不用太惊恐,可以后退为图1的入门八炮阵型,或者补上泳池的忧郁菇,而如果那两个Flag要面对的僵尸没有玩偶匣僵尸,不用担心泳池的忧郁菇被炸掉。如何减少被玩偶匣僵尸炸掉的风险,后面应该会提,这里暂时先打住。
在没有叶子伞的保护下,3C8P如何面对蹦极僵尸(就是飞贼僵尸,小偷僵尸)还能保证植物不被偷走呢?冰川菇+双忧郁菇可以杀死小偷。要意识到蹦极僵尸的胳膊是伸展开的,占的格子比较多,所以除了图4第一行和第六行的地刺王,其它不被叶子伞保护的植物,最少都有两个忧郁菇对付消灭,不过如果不用冰川菇冻住蹦极僵尸,有限的时间里两个忧郁菇的伤害也是不够的。
还有很多知识和价值,后面讲大数据的其它特点和云计算的时候再继续写。
玩家打到300个Flag时可获得这些价值,打到3000个Flag时差不多还是这些知识。300个Flag可以让玩家对生存无尽中面对僵尸的组合,具体该怎么办,非常熟悉。3000个还是那些价值。所以,多类别数据在数据量很大的情况下,也是价值密度低的。
大数据的第四个特点,快速(Velocity)——而且越新的数据价值越大,这就要求对数据的处理速度也要快,以便能够从数据中及时地提取知识,发现价值。
生搬硬套一下,生存无尽模式中,每两个Flag中,僵尸的总血量,是逐步快速增长,然后饱和的。有玩家说125F饱和。而且红眼巨人僵尸不是一开始出现的,当玩家第一次见识到红眼巨人僵尸有多难消灭时,那时Flag数还比较低,出现的红眼巨人僵尸的数量还不多,对玩家来说,这是新的数据,这些新的数据对后来红眼巨人僵尸大量出现时该如何消灭是有价值的。40~60Flag的僵尸总血量,该如何消灭,对100Flag以后僵尸总血量该如何消灭是有价值的。对红眼巨人僵尸的消灭速度要快,不然阵型就会被破坏,然后防线会被快速冲破。
大数据的第五个特点,复杂度(Complexity)——对数据的处理和分析难度大。
说一些实例。现实中的大数据,以前(不知道现在有没有改进)是“有点傻”的,比如在电商平台上选购了破壁机,然后就会一直给你推荐破壁机。像纸巾、洗衣液等快速消费品,短期极有可能仍有复购需求,但破壁机往往价格昂贵并耐用,消费者买完之后,平台再推荐,几乎无意义。
如何设计生存无尽的阵型?现在网上有很多他人心血总结的阵型可供玩家选择,但是回到2009年呢?生存无尽模式,该如何选择植物,设计成什么样的阵型呢?
不管是图1的入门八炮阵还是图2的经典八炮阵,泳池水路的玉米加农炮是放在后场,这样泳池前场(靠近僵尸的场)的植物可以保护玉米加农炮,但如果照搬硬套,把草坪上的玉米加农炮也放到后场(我就犯过这种错误),那就真的“有点傻”了,因为巨人僵尸扔的小鬼僵尸会把玉米加农炮啃的渣都不剩,所以,经典八炮阵草坪上的玉米加农炮,哪怕要面对伴舞僵尸,玩偶匣僵尸(小丑僵尸)爆炸的威胁,也是放在前场的。
植物大战僵尸的生存模式,有普通生存模式+生存困难模式,生存无尽模式。前两者不用搭梯即可轻松过关,使用火爆辣椒不用有任何顾虑。但如果用搭梯子的阵型(比如图2的经典八炮)打无尽,使用火爆辣椒就显得很傻,因为会把梯子给炸掉,而梯子一旦被炸,高Flag搭梯难度太高。
植物大战僵尸的生存模式,有普通生存模式+生存困难模式,生存无尽模式。前两者不用搭梯即可轻松过关,使用火爆辣椒不用有任何顾虑。但如果用搭梯子的阵型(比如图2的经典八炮)打无尽,使用火爆辣椒就显得很傻,因为会把梯子给炸掉,而梯子一旦被炸,高Flag搭梯难度太高。下面拿僵尸举一个更合适的例子。
在《植物大战僵尸》的生存无尽模式中,每两个flag,会在20多种僵尸中,选择大概11种。每种僵尸特性并不一样。如果使用的是图1的入门八炮阵和图2的经典八炮阵,某两个flag,出现了舞王僵尸,由于舞王僵尸移动到第8列的速度极快,然后伴舞僵尸迅速出现,为了防止伴舞僵尸啃炮(没有南瓜壳保护的5、6列玉米加农炮),玉米加农炮的炮击位置,一般不是第8列正中间,而是要第8列中间向左偏,也就是向第7列偏一点,这样可以尽量避免伴舞僵尸啃炮,如果泳池还有海豚僵尸,甚至空中还有气球僵尸,将玉米加农炮的炮击位置,选择在第8列中间向左偏,甚至可以避免空中气球僵尸的遗漏,更是可以减轻泳池忧郁菇对付海豚僵尸的负担。但如果某两个flag中,既没有舞王僵尸,也没有海豚和气球僵尸,但是移动缓慢的红眼巨人僵尸和白眼巨人僵尸都出现。那么此时如果玩家还是习惯性的僵尸一出现,就将玉米加农炮的炮击位置选到第8列中间向左偏,那真的很浪费玉米导弹(有点傻),提前浪费的结果,就是后面会很吃力,甚至阵型危险。