|
50鱼币
今天的题目:
扔 n 个骰子,向上面的数字之和为 S。给定 n,请列出所有可能的 S 值及其相应的概率。
示例 1:
输入:n = 1
输出:[[1, 0.17], [2, 0.17], [3, 0.17], [4, 0.17], [5, 0.17], [6, 0.17]]
解释:掷一次骰子,向上的数字和可能为1,2,3,4,5,6,出现的概率均为 0.17。 示例 2:
输入:n = 2
输出:[[2,0.03],[3,0.06],[4,0.08],[5,0.11],[6,0.14],[7,0.17],[8,0.14],[9,0.11],[10,0.08],[11,0.06],[12,0.03]]
解释:掷两次骰子,向上的数字和可能在[2,12],出现的概率是不同的。
 欢迎大家一起答题! 
本帖最后由 Unicorn# 于 2019-10-23 21:12 编辑
zltzlt 发表于 2019-10-23 20:08
输入:1
输出:[[1,0.17],[1,0.17],[1,0.17],[1,0.17],[1,0.17],[1,0.17]]
预期结果:[[1,0.17],[2,0.1 ...
哈哈哈哈哈哈我傻了
index函数只会返回它找到的第一个索引值
改了下
- def possibility(n):
- f = []
- for i in range(n+1):
- f.append([])
- for j in range(6*n+1):
- f[i].append(0)
- f[0][0] = 1
- for var_n in range(1, n+1):
- for var_s in range(var_n, 6*var_n+1):
- for i in range(1, 7):
- f[var_n][var_s] += f[var_n-1][var_s-i]
- ans = []
- full = 6**n
- print(f)
- for i in range(n,len(f[n])):
- ans.append([i, float(f[n][i])/full])
- print(ans)
复制代码
|
最佳答案
查看完整内容
哈哈哈哈哈哈我傻了
index函数只会返回它找到的第一个索引值
改了下
|