在Python中查找具有n个或更少点的概率

在Python中查找具有n个或更少点的概率

假设我们正在玩一款独特的游戏,我们有三个值n,k和h。我们从0分开始,然后可以随机选择1到h(含)之间的数字,将获得那么多的分数。我们在得分至少为k分时停止。我们必须找出我们得到n个或更少分数的概率。在这里,任何数字都可以随机选择,并且所有结果的概率都相同。

因此,如果输入如下 n = 2, k = 2, h = 10,则输出将为0.11。

要解决此问题,我们将按照以下步骤进行 –

  • 定义函数dp()。这将采取路径。
    • 如果路径与k-1相同,则
      • 返回(n – k + 1和h的最小值)/ h
    • 如果路径>n,则
      • 返回0
    • 如果路径> = k,则
      • 返回1
    • 返回dp(path + 1)-(dp(path + h + 1)- dp(path + 1))/ h

  • 从主函数中执行以下操作 –

  • 如果k为零,则

    • 返回1
  • 如果n
    • 返回0
  • 返回dp(0)

以下是更好地理解的实现 –

更多Python相关文章,请阅读:Python 教程

示例

class Solution:
   def solve(self, n, k, h):
      if not k: return 1
         if n < k: return 0
         def dp(path):
            if path == k− 1:
               return min((n− k + 1), h) / h
            if path > n:
               return 0
            if path >= k:
               return 1
            return dp(path + 1)− (dp(path + h + 1)− dp(path + 1)) / h
         return dp(0)
ob = Solution()
print(ob.solve(2,2,10))

输入

2,2,10

输出

0.11

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程