刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

37.数学游戏
校园里流行一种新的数学游戏:每次邀请两个同学参加,第一个同学先从1和2中挑一个数字,第二个同学可以在对方的基础上选择加1或者加2,然后又轮到第一个同学,他也可以选择加1或者加2,之后再把选择权交给对方,就这样交替地选择加1或者加2,谁先加到20,谁就赢了。小智编写了以下程序,分析总共存在多少种可能出现的情形。请补充完成该程序。
def act(n):
if n == 1 or ① :
​ return 1
sn = ②
return ③
tn = act( ④ )

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

这个问题是一个递归问题,通过编写程序来模拟数学游戏的流程。首先,当游戏结束(即其中一个玩家达到或超过 20 分)时,游戏结束。此时只有一种情况,即返回当前玩家赢得游戏的分数(即累积得分)。如果游戏尚未结束,我们需要考虑两种情况:当前玩家选择加 1 或加 2。因此,我们需要递归地调用函数两次,分别模拟这两种情况。然后我们需要计算这两种情况的得分总数,并将它们存储在一个列表中(这就是 sn)。接下来我们需要返回两种情况的数量(即返回 len(sn))。最后,我们需要根据当前玩家的选择(即当前轮到的玩家是第一个还是第二个)来决定下一个玩家应该选择哪个数字(即 n-1 或 n-2)。通过这种方式,我们可以模拟整个游戏过程并计算出所有可能的情形数量。

创作类型:
原创

本文链接:37.数学游戏校园里流行一种新的数学游戏:每次邀请两个同学参加,第一个同学先从1和2中挑一个数字,第

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share