美文网首页
【面试题】拿球游戏的得分期望

【面试题】拿球游戏的得分期望

作者: 不可能打工 | 来源:发表于2023-06-12 21:06 被阅读0次

题目

袋子里有10个红球和10个黑球,游戏规则是:拿到红球得1分,拿到黑球减1分,进行无放回拿20次,当你发现继续拿球不利于得分时,可以提前终止比赛,请计算得分的期望。

解答

为了计算得分的期望,我们可以使用动态规划(Dynamic Programming)的方法。我们定义一个三维数组dp[i][j][k]表示在剩余i个红球、j个黑球和剩余k次抽取机会时的期望得分。我们的目标是计算dp[10][10][20]。

python代码

def expected_score():
    dp = [[[0 for _ in range(21)] for _ in range(11)] for _ in range(11)]

    for k in range(1, 21):
        for i in range(11):
            for j in range(11):
                if i == 0 and j == 0:
                    continue
                total_balls = i + j
                prob_red = i / total_balls
                prob_black = j / total_balls
                expected_if_continue = prob_red * (1 + dp[i - 1][j][k - 1]) + prob_black * (-1 + dp[i][j - 1][k - 1])
                if expected_if_continue > 0:
                    dp[i][j][k] = expected_if_continue
                else:
                    dp[i][j][k] = 0

    return dp[10][10][20]

print(expected_score())

相关文章

  • 篮球之战

    篮球之战是一款本地双人联机游戏,它是一款动作类型的小游戏,你可以操控里面的球员得分,三分球,二分球,跨栏,灌篮,抛...

  • [LeetCode By Python] 292. Nim Ga

    一、题目 二、解题 互相拿球谁先拿完问题:1)0~3个球:直接拿对应的数字就赢。2)4个球:无论先拿的拿1、2、3...

  • 14.8 pygame射击游戏(四)

    游戏得分 为了记录游戏得分,我们在代码主循环外面定义score = 0变量,当子弹击中敌舰后,我们将得分加一。 为...

  • 摔跤手感悟

    想象一个游戏,其目标是把球扔向一个目标点,从而得分。现在我们给这个游戏添加一些限制:这个目标点在不断移动,同时向你...

  • 我对儿子说:

    儿子,考试就像游戏,规则就是得分。知识同学们都懂,但关键是如何得高考,想方设法拿高分。 知识的东西,你在考试前...

  • 球球游戏的总结

    第一游戏原则 生存篇:不要被别人吃掉 • 时时刻刻要跑来跑去,你站在原地一定會被人干掉,----別傻站著,時刻保持...

  • 球球游戏的总结

    第一游戏原则 生存篇:不要被别人吃掉 • 时时刻刻要跑来跑去,你站在原地一定會被人干掉,----別傻站著,時刻保持...

  • [智力题]乒乓球问题

    假设排列着100个乒乓球,由两个人轮流拿球装入口袋,能拿到第100个乒乓球的人为胜利者。条件是:每次拿球者至少要拿...

  • 看球重要还是我重要

    “中国队中场球员拿球,非常冷静,往右一拨,传给右边前卫。拿球之后,往前直塞,传给前锋。前锋拿球,晃过后卫,面对门将...

  • 球非球游戏

    昨天晚上,我带孩子们去朋友阿燕家。她家有一位刚满三岁的多奇小公主,非常喜欢我。 带着一帮孩子玩了很多游戏之后,我突...

网友评论

      本文标题:【面试题】拿球游戏的得分期望

      本文链接:https://www.haomeiwen.com/subject/icvqydtx.html