找出Python中具有n个或更少点的可能性的程序
假设我们正在玩一个独特的游戏,并且我们有三个值n,k和h。我们从0点开始,然后我们可以从1到h(包括1和h)之间随机选择一个数字,然后得到那么多点。当我们获得至少k分时,我们将停止。我们必须找到n点或更少点的概率。在这里,可以随机选择任何数量,并且结果都有相同的概率。
因此,如果输入类似于n=2,k=2,h=10,则输出将为0.11。
为了解决这个问题,我们将遵循以下步骤-
定义一个功能dp()。这将走道路。
返回1
返回0
返回(n−k+1和h的最小值)/h
如果路径与k−1相同,则
如果path>n,则
如果路径>=k,则
返回dp(path+1)-(dp(path+h+1)-dp(path+1))/h
在主要功能中,执行以下操作-
如果k为零,则
返回1
如果n<k
返回0
返回dp
让我们看下面的实现以更好地理解-
示例
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
热门推荐
10 医院探望朋友祝福语简短
11 毕业祝福语简短女朋友
12 春节虎年爸妈祝福语简短
13 儿童毕业祝福语 简短6
14 开工仪式横幅祝福语简短
15 孩子日常祝福语大全简短
16 清晨寄语诗句祝福语简短
17 结婚送亲认亲祝福语简短
18 虎年喝酒拜年祝福语简短