剑指offer-Q60 n个骰子的点数
python版本代码
g_maxValue = 6 # 单个骰子最大的点数
def PrintProbability(number):
'''
:param number: 骰子的个数
:return: 打印概率分布,返回表示概率分布的数组
'''
if number < 1: # 骰子个数小于1
return
maxSum = number * g_maxValue
pProbabilities = [0 for i in range(maxSum - number + 1)]
Probability(number, pProbabilities)
total = pow(g_maxValue, number)
for i in range(number , maxSum + 1):
ratio = pProbabilities[i-number]/total
print(i, ratio)
return pProbabilities
def Probability(number, pProbabilities):
'''
:param number: 骰子个数
:param pProbabilities:概率分布(计算频数)
:return: None
'''
for i in range(1, g_maxValue+1):
_Probability(number, number, i, pProbabilities)
def _Probability(original, current, sum, pProbabilities):
'''
:param original: 等于骰子的个数,表示的意义是最小的点数之和,作为pProbabilities定位索引的一个offset
:param current: 还剩下的未考虑的骰子的个数
:param sum: 考虑过的骰子的点数之和
:param pProbabilities: 概率分布(计算频数)
:return: None
'''
if current == 1:
pProbabilities[sum - original]+=1
else:
for i in range(1, g_maxValue+1):
_Probability(original, current - 1, i+sum, pProbabilities)
PrintProbability(1)
剑指offer-Q60 n个骰子的点数的更多相关文章
- 剑指 Offer 60. n个骰子的点数 + 动态规划 + 空间优化
剑指 Offer 60. n个骰子的点数 Offer_60 题目详情 题解分析 package com.walegarrett.offer; /** * @Author WaleGarrett * @ ...
- 剑指 Offer 60. n个骰子的点数
剑指 Offer 60. n个骰子的点数 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s.输入n,打印出s的所有可能的值出现的概率. 你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n ...
- 【Java】 剑指offer(60) n个骰子的点数
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s.输入n,打 ...
- 【剑指offer】n个骰子的点数,C++实现
# 题目 # 思路 # 代码
- 剑指offer-面试题60-n个骰子的点数-动态规划
/* 题目: 计算n个骰子,出现和s的概率. */ #include<iostream> #include<cstdlib> #include<stack> #in ...
- 剑指offer二刷(精刷)
剑指 Offer 03. 数组中重复的数字 题目描述 在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次. ...
- LeetCode:“剑指 Offer”
LeetCode:"剑指 Offer" 刷题小菜鸡,花了几天时间做了一遍 LeetCode 上给出的 "剑指 Offer" 在此做一下记录 LeetCode主页 ...
- 《剑指offer(第二版)》面试题60——n个骰子的点数
一.题目描述 把n个骰子仍在地上,所有的骰子朝上的一面的点数之和为s,输入n,打印出s所有可能的值出现的概率. 二.题解 <剑指offer>上给出的两种方法,尤其是代码,晦涩难懂且没有注释 ...
- 剑指 Offer 题目汇总索引
剑指 Offer 总目录:(共50道大题) 1. 赋值运算符函数(或应说复制拷贝函数问题) 2. 实现 Singleton 模式 (C#) 3.二维数组中的查找 4.替换空格 ...
- 面试题目——《剑指Offer》
1.把一个字符串转换成整数——<剑指Offer>P29 2.求链表中的倒数第k个结点——<剑指Offer>P30 3.实现Singleton模式——<剑指Offer> ...
随机推荐
- python网络爬虫(9)构建基础爬虫思路
目的意义 基础爬虫分5个模块,使用多个文件相互配合,实现一个相对完善的数据爬取方案,便于以后更完善的爬虫做准备. 这里目的是爬取200条百度百科信息,并生成一个html文件,存储爬取的站点,词条,解释 ...
- 构造器(Constructor)--构造函数
构造器是类型的成员之一,其他成员比如,成员字段,成员函数.狭义上,构造器指的是实例构造器(instance constructor) class Student { public int ID; pu ...
- EJS学习(五)之EJS的CommonJs规范版本
EJS的CommonJs规范版本 ejs分为两个版本一个是CommonJs版本,另外一个是AMD规范的版本. 基础:html页面 安装:<script type="text/javas ...
- 不基于比较的排序算法:Counting-sort和Radix-sort
- 112、如何使用stack (Swarm19)
参考https://www.cnblogs.com/CloudMan6/p/8135714.html 定义好了 stack YAML 文件,就可以通过 docker stack deploy 命令 ...
- linux复习6
ubuntu------------- apt //advanced package tool,高级包工具. apt-get install centos------------- yum //yel ...
- Altium Designer 编译原理图出现has no driving source警告解决办法
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 作者:struct_mooc 博客地址:https://www.cnblogs.com/stru ...
- Ubuntu Linux 查看、编辑、比较二进制文件
查看二进制有以下几种方法: 方法一:hexdump apt-get install libdata-hexdumper-perl 安装好之后就可以直接hexdump your_binary_file ...
- SQL Server里面如何导出包含数据的SQL脚本
通常情况下,SQL Server里面的生成SQL脚本,只会包含数据库及表的字段结构,而不会包含表的数据,也就是SQL脚本里面只有Create database,Create table 这样的语句,没 ...
- Some notes of An Insider's Guide to TOEFL iBT
尽早把托福这个坑填上方是正道,在正式上托福课之前阅读了这本Guide,颇受启发——只要是考试,总是有固定的方法的= = An Insider's Guide to TOEFL iBT It is NO ...