python经典数学案例 您所在的位置:网站首页 报7游戏数学题 python经典数学案例

python经典数学案例

2024-07-10 22:26| 来源: 网络整理| 查看: 265

原题如下:

有一个抢数游戏,其规则是两人轮流报数,每次可以报1 个,2 个,3 个,4个数,但不许不报也不许多报,如果第一个人报1,2 或1,2,3,第二个人接着往下报,然后第一个人接着往下报,以此类推,那么第一个人第一次应该报( )才可能稳抢到1024.

1024,有点陡,我们先换一个小一点的数来分析:

抢“30”游戏,两人从1开始轮流数数,最少数1个数,最多数3个数,谁数到30谁赢,怎么数?

分析(假设其中一个人是我,且我想赢):

如果数到30就赢,且每次只能数1-3个数,那只需要数到26就可以了

当我数到26,此时对方 加上1到3中的任何一个数都到不了30,反而只需要等对方数完后我再走一步就到30了,比如对方数2,就到28我再数个2就到30,对方数3,我数1就到30...

怎样才能走到26呢,想一想:

首先我们观察一下每次报的数:1、2、3,这三个数能不能两两组合成一个固定的数,我们发现,1+3=4,  2+2=4,所以这个固定的组合数就是 4 (自己去多写几个数来找找规律)

由此得方案:

目标数 30 减去“最多数 3 个数”中的 3,再减 1 得 26

如果 26 能被组合数 4 整除,则只需要对方先出,然后我每次出一个和对方相加和为 4 的数即可,最后我一定能数到 30

但很明显此处的 26 不能被组合数 4 整除,所以:

走第一步时一定要掌握主动权,将 26 钝化为可以被 4 整除的数,即 26 减去我第一步走的数后需要能被 4 整除。

故我要走第一步,且必须数 2 。26 - 2=24,  得到的 24 能被 4 整除

接下来只需要等对方出,(随便出1-3中哪个数),我方只需要出一个和对方数字相加为 4 的数即可胜利! (24/4=6 。即六轮后我就能数到30)

答案:

我先数,数2;接下来我只需要数一个和对方相加为 4 的数即可我赢、

接下来我们再来分析 1024 这道题:

方案如下:

1)  1024-4-1 = 1019  即只需要拿到1019即可赢

2)  组合数为:4&



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有