当前位置: 首页 > news >正文

Study Plan For Algorithms - Part36

1. n个骰子的点数
把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。
方法一:

def dicesProbability(n):maxValue = 6if n < 1:return []maxSum = maxValue * nres = [0] * (maxSum - n + 1)def helper(n, res):for i in range(1, maxValue + 1):computedSum(n, n, i, res)def computedSum(origin, current, sum, res):if current == 1:res[sum - origin] += 1else:for i in range(1, maxValue + 1):computedSum(origin, current - 1, i + sum, res)helper(n, res)total = 6 ** nratio = [res[i] / total for i in range(len(res))]return ratio

方法二:

def dicesProbability(n):maxValue = 6if n < 1:return []sumArr = [[0] * (maxValue * n + 1), [0] * (maxValue * n + 1)]temp = 0for i in range(1, maxValue + 1):sumArr[temp][i] = 1for j in range(2, n + 1):for k in range(j):sumArr[1 - temp][k] = 0for m in range(j, maxValue * j + 1):sumArr[1 - temp][m] = 0for l in range(1, min(m + 1, maxValue + 1)):sumArr[1 - temp][m] += sumArr[temp][m - l]temp = 1 - temptotal = 6 ** nratio = [sumArr[temp][i] / total for i in range(n, maxValue * n + 1)]return ratio

方法三:

def dicesProbability(n):ratio = [1/6] * 6for i in range(2, n + 1):temp = [0] * (5 * i + 1)for j in range(len(ratio)):for l in range(6):temp[j + l] += ratio[j] / 6ratio = tempreturn ratio

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 如何在Chrome最新浏览器中调用ActiveX控件?
  • 解决docker指令卡住的场景之一
  • [Excel VBA]如何使用VBA自动生成图表
  • 【工具】Java Excel转图片
  • 图解Redis 01 | 初识Redis
  • Nginx泛域名 解析的匹配前缀绑定或转发到子目录
  • HarmonyOS鸿蒙开发实战(5.0)自定义全局弹窗实践
  • 汽车总线之---- CAN FD总线
  • nginx upstream转发连接错误情况研究
  • Python | Leetcode Python题解之第429题N叉树的层序遍历
  • Leetcode 每日一题:Diameter of Binary Tree
  • TS React 项目中使用TypeScript
  • 串的存储实现方法(与链表相关)
  • Pybullet 安装过程
  • 面试干货|自动化测试中常见面试题
  • Android交互
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • java中的hashCode
  • leetcode388. Longest Absolute File Path
  • Rancher如何对接Ceph-RBD块存储
  • RxJS: 简单入门
  • spring + angular 实现导出excel
  • vuex 学习笔记 01
  • Vue全家桶实现一个Web App
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 近期前端发展计划
  • 前端临床手札——文件上传
  • 思维导图—你不知道的JavaScript中卷
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 学习JavaScript数据结构与算法 — 树
  • 一天一个设计模式之JS实现——适配器模式
  • 移动端 h5开发相关内容总结(三)
  • 如何正确理解,内页权重高于首页?
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #if和#ifdef区别
  • #微信小程序:微信小程序常见的配置传旨
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (09)Hive——CTE 公共表达式
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (k8s)kubernetes 部署Promehteus学习之路
  • (八)Spring源码解析:Spring MVC
  • (二十九)STL map容器(映射)与STL pair容器(值对)
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)程序员疫苗:代码注入
  • (转)可以带来幸福的一本书
  • . Flume面试题
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .net core + vue 搭建前后端分离的框架
  • .net core webapi 大文件上传到wwwroot文件夹
  • .Net Redis的秒杀Dome和异步执行
  • .net 发送邮件