LeetCode剑指 Offer 60. n个骰子的点数
作者:互联网
dp记录状态数量,数学解法会是更快的解法
class Solution:
def dicesProbability(self, n: int) -> List[float]:
m, p, l, tot = 6, [1, 2, 3, 4, 5, 6], n * 6, 1.
dp = [[0 for i in range(l + 1)] for j in range(n)]
for i in range(m): dp[0][p[i]] = 1
for i in range(1, n):
for j in range(1, l + 1):
for k in range(m):
if j + p[k] <= l: dp[i][j + p[k]] = dp[i][j + p[k]] + dp[i - 1][j]
for i in range(n): tot *= 6.
for i in range(n, l + 1): dp[n - 1][i] /= tot
return dp[n - 1][n:]
标签:骰子,Offer,60,range,LeetCode,dp 来源: https://www.cnblogs.com/solvit/p/16470537.html