数学吧 关注:911,326贴子:8,830,075

回复:一个由《植物大战僵尸》引发的数学问题

只看楼主收藏回复

假设有m个玉米,每一轮攻击有p^m的概率没有投出玉米,为了简化计算不妨假设黄油定住僵尸的时间刚好等于一轮射击的间隔,也即每一轮射击僵尸有p^m的概率前进一步,假设总共需要走t步
假设僵尸需要被打n次死亡,那么击杀僵尸需要的轮数为n/m,僵尸死前前进的步数的数学期望为n/m*p^m
当m,n为无穷大时,这个值有三种可能
=0,僵尸会在有限或无限的时间内被打死
=A,僵尸会在无限的时间内最终前进一定的距离,或者在无限的时间内通关,能否通关取决于这个值的大小
=+∞,僵尸可以永远前进下去并且可以在有限的时间内干爆玉米
有人会说p^m已经是0了是不是不可能投不出玉米了?那僵尸不就不可能前进了吗?
但概率为0不代表不可能发生,好比是随机选取线段上一点恰好选到中点一样,概率为0,但实实在在有可能发生,在无穷大的时间内总是能够期待出现无穷多玉米一起投出玉米粒的事件发生的


IP属地:美国来自Android客户端112楼2023-10-26 15:47
收起回复
    不就是分能打死或者不能打死吗,欧洲玉米每发都控就能打死,非洲玉米每发都不能控就打不死,有什么好说的


    IP属地:山东来自Android客户端113楼2023-10-26 16:06
    回复
      2025-07-13 17:24:09
      广告
      什么,这里不是植吧?


      IP属地:黑龙江来自Android客户端114楼2023-10-26 16:09
      回复
        怎么感觉很多人对于计算机的所谓“伪随机”有很大的误解啊。
        计算机的伪随机简单理解是因为某些随机数算法输入一个确定的随机数种子会得到一个确定的随机数序列,所以是伪随机。但是现在的许多随机数算法早就可以用诸如硬件噪声之类的生成随机数了,而且即便是传统的伪随机算法一般来讲把它当成真随机用也是没有任何问题的(每次想办法随机一个随机数种子就行)。
        游戏中的伪随机就完全是另一回事了。游戏中的伪随机是为了玩家的游戏体验而对游戏中的概率计算进行的改进算法,不再使用完全靠运气的计算机随机数而是加入了类似于保底的机制(不同游戏具体机制肯定不一样),比如说每次不暴击就会提高暴击几率,是人为实现的算法,跟上面的计算机伪随机完全不一样。
        当然pvz里面到底有没有用伪随机我就不知道了,只能说我猜没有


        IP属地:上海来自Android客户端115楼2023-10-26 16:13
        回复
          第一次点进数学吧,我大受震撼


          IP属地:浙江来自Android客户端116楼2023-10-26 16:18
          回复
            无论你有多少个玉米,就必定出现某一轮大家都没有投出黄油的概率,这个概率随着数量无限接近0%按数学上0.9无限循环等于1的话,确实是可以无限控。


            IP属地:四川来自Android客户端117楼2023-10-26 16:30
            回复
              无穷多玉米有无穷小概率不能无限控,所以打不过血量无穷大的僵尸。


              IP属地:江西来自Android客户端118楼2023-10-26 16:39
              回复
                概率小于某个规定的值就视作不可能事件,别扯什么理不理论上了


                IP属地:湖北来自Android客户端119楼2023-10-26 16:48
                回复
                  2025-07-13 17:18:09
                  广告
                  无穷多的玉米永远击败不了无穷血的僵尸,因此无穷血的僵尸立于不败之地,击败玉米需要无穷久的时间。因为所有玉米都投不出黄油的概率是无穷小但也是有概率的,在巨人无穷的生命中可以无限的等待这渺茫的机会,可能宇宙塌缩再爆炸都不会有这一天但这可能性依旧存在,说不定下一秒就能走一步呢?这是概率问题


                  IP属地:浙江来自Android客户端120楼2023-10-26 17:19
                  回复
                    多少血都能打吧


                    IP属地:江西来自Android客户端121楼2023-10-26 17:36
                    回复
                      指数增长的能打8亿血量的


                      IP属地:江苏来自Android客户端122楼2023-10-26 17:43
                      回复
                        上接21楼 更新一下进度:
                        For zombie_HP = 3.000000e+08, the plants defeated the zombie.
                        For zombie_HP = 3.965823e+08, the plants defeated the zombie.
                        For zombie_HP = 5.242585e+08, the plants defeated the zombie.
                        For zombie_HP = 6.930389e+08, the plants defeated the zombie.
                        For zombie_HP = 9.161567e+08, the plants defeated the zombie.
                        For zombie_HP = 1.211105e+09, the plants defeated the zombie.
                        For zombie_HP = 1.601010e+09, the plants defeated the zombie.
                        For zombie_HP = 2.116441e+09, the plants defeated the zombie.
                        For zombie_HP = 2.797810e+09, the plants defeated the zombie.
                        For zombie_HP = 3.698540e+09, the plants defeated the zombie.
                        For zombie_HP = 4.889253e+09, the plants defeated the zombie.
                        For zombie_HP = 6.463304e+09, the plants defeated the zombie.
                        For zombie_HP = 8.544108e+09, the plants defeated the zombie.
                        For zombie_HP = 1.129481e+10, the plants defeated the zombie.
                        110亿血的已过


                        IP属地:中国香港123楼2023-10-26 17:56
                        回复
                          @月煊


                          IP属地:湖北来自Android客户端124楼2023-10-26 17:56
                          收起回复
                            考虑到这游戏本身就有的数值上限,当血量超过2的31次方减一之后,巨人就无敌了,所以无穷是不可能的


                            IP属地:上海来自Android客户端126楼2023-10-26 18:32
                            回复
                              2025-07-13 17:12:09
                              广告
                              条件很清楚,无穷玉米但是控住的概率不是1,僵尸的条件是死不掉,我认为是僵尸赢


                              IP属地:浙江来自iPhone客户端127楼2023-10-26 18:43
                              回复