# -*- coding: utf-8 -*-
"""
Created on Mon Apr 23 15:11:22 2018
@author: HAN Jinghui
"""
class Solution:
# @param {int} n an integer
# @return {tuple[]} a list of tuple(sum, probability)
def dicesSum(self, n):
# Write your code here
if n <= 0:
return None
result = [
[],
[1,1,1,1,1,1],
]
# result 点数和列表
# n 骰子数
# i 第i个骰子
# x 列表第i行元素数
# j 点数和
for i in range(2,n+1):
x = 5*i+1
result.append([0 for _ in range(x)])
for j in range(x):
if j < 6:
result[i][j] = (sum(result[i-1][0:j+1]))
else:
result[i][j] = (sum(result[i-1][j-5:j+1]))
res = result[-1]
all = sum(res)
other = []
# 第i个元素代表骰子总和为n+i
for i,item in enumerate(res):
pro = item/all
other.append([n+i,pro])
return other
Python, LintCode, 20. 骰子求和
最新推荐文章于 2022-02-08 18:56:11 发布