File tree Expand file tree Collapse file tree 1 file changed +31
-0
lines changed
Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change 1+ # -*- coding: utf-8 -*-
2+
3+ class Solution :
4+ # @param {int} n an integer
5+ # @return {tuple[]} a list of tuple(sum, probability)
6+ def dicesSum (self , n ):
7+ # Write your code here
8+ '''
9+ 只有1个骰子,概率是1/6。
10+ 对于有2个骰子的情况,以第一个骰子为基础算,m[x][y]代表x个骰子获得y点。
11+ m[2][7]等于以下状态的和:
12+ - m[1][1] / 6(出6点)
13+ - m[1][2] / 6(出5点)
14+ - m[1][3] / 6(出4点)
15+ - m[1][4] / 6(出3点)
16+ - m[1][5] / 6(出2点)
17+ - m[1][6] / 6(出1点)
18+ '''
19+ ret = []
20+ matrix = [[0 ] * (n * 6 ) for i in xrange (n )]
21+ for i in xrange (6 ): # 初始化1个骰子的结果
22+ matrix [0 ][i ] = 1.0 / 6.0
23+ for i in xrange (n - 1 ):
24+ for j in xrange (i , (i + 1 ) * 6 ):
25+ prob = matrix [i ][j ] / 6
26+ for k in xrange (1 , 7 ):
27+ # 利用matrx[i][j]更新matrix[i + 1][j + k]
28+ matrix [i + 1 ][j + k ] += prob
29+ for i in xrange (n - 1 , n * 6 ):
30+ ret .append ([i + 1 , matrix [- 1 ][i ]])
31+ return ret
You can’t perform that action at this time.
0 commit comments