解法
数学题,思路没啥问题,统计每个点数可能出现的概率,最后算K到N之间的概率之和就行
每次单独求和会超时,所以要和用增量式的方法求
class Solution(object):
def new21Game(self, N, K, W):
"""
:type N: int
:type K: int
:type W: int
:rtype: float
"""
if K==0:
return 1.0
elif N==0:
return 0.0
f = [0]*(N+1)
f[0] = 1
NowSum = 1.0
for i in xrange(1, N+1):
if i>W:
NowSum -= f[i - W - 1]
f[i] = NowSum/W
if i<K:
NowSum += f[i]
return round(sum(f[K:N+1]),5)