SP1026 FAVDICE - Favorite Dice

LeRobot 入门教程(一)软件环境、部署流程及摄像头配置 🤖 LeRobot:开源机器人学习平台 摘要:LeRobot是一个基于PyTorch的开源机器人学习平台,提供模型、数据集和工具,旨在降低机器人技术门槛。平台包含经过验证的模仿学习和强化学习方法,并提供预训练模型、人类演示数据集及模拟环境。安装需从源码获取,支持Python 3.10环境,可选扩展包括仿真环境(如gym-aloha)、电机控制(Dynamixel/Feetech SDK)和实验跟踪(Weights & Biases)。该平台托管在HuggingFace,并设有社区Discord频道 阅读详情
Label

期望DP经典例题

Description

一个n面的骰子,求期望掷几次能使得每一面(每一种点数)都被掷到。

数据范围:n≤1000n\leq 1000n≤1000,共t(t≤1000)t(t\leq 1000)t(t≤1000)组数据。

Solution
一种正确但不可行的想法

一开始想着设dp[i][j]dp[i][j]dp[i][j]为投掷了iii次骰子后扔到过jjj个不同面所经过次数的期望,那么这个转移式还是比较好想的:

​ dp[i][j]=n−(j−1)ndp[i−1][j−1]+jndp[i−1][j](dp[1][1]=1)dp[i][j]=\frac{n-(j-1)}{n}dp[i-1][j-1]+\frac{j}{n}dp[i-1][j](dp[1][1]=1)dp[i][j]=nn−(j−1)​dp[i−1][j−1]+nj​dp[i−1][j](dp[1][1]=1)

​ ans=∑i=n∞dp[i][n]ans=\sum_{i=n}^{\infty}dp[i][n]ans=∑i=n∞​dp[i][n]

dp[i][j]dp[i][j]dp[i][j]由两种情况转移而来:1、dp[i−1][j]dp[i-1][j]dp[i−1][j]:扔了一次骰子还是已出现过的jjj面中的一种,p=jnp=\frac{j}{n}p=nj​;2、dp[i−1][j−1]dp[i-1][j-1]dp[i−1][j−1]:扔了一次骰子不是已出现过的j−1j-1j−1面中的一种,p=n−(j−1)np=\frac{n-(j-1)}{n}p=nn−(j−1)​。

但是,这种正向推导的方法有一种显然的问题:理论上存在扔无限次骰子而始终无法使得每一面都被掷到的可能性,故此答案没法统计(ansansans收敛于何处实在难求),故我们考虑不依赖于步数的新状态。

正推?

设dp[i]dp[i]dp[i]表示恰好投出iii种不同点数的期望投掷次数,初始状态为dp[1]=1dp[1]=1dp[1]=1,问题来了:dp[i]dp[i]dp[i]由何转移得到?应由dp[i−1]dp[i-1]dp[i−1]和dp[i]dp[i]dp[i]。到了这里,dp[i−1]dp[i-1]dp[i−1]到dp[i]dp[i]dp[i]的概率为n−i+1n\frac{n-i+1}{n}nn−i+1​,dp[i]dp[i]dp[i]到dp[i]dp[i]dp[i]的概率为in\frac{i}{n}ni​,概率和不为1,不可行。

逆推

设dp[i]dp[i]dp[i]表示当前已投出过iii种不同点数后投掷的期望次数,那么考虑在f[i]f[i]f[i]状态下投掷一次骰子,显然有in\frac{i}{n}ni​的概率又扔到原有的iii面骰子,f[i]f[i]f[i]转移到f[i]f[i]f[i],有n−in\frac{n-i}{n}nn−i​的概率扔到原来没扔到的n−in-in−i面骰子,f[i]f[i]f[i]转移到f[i+1]f[i+1]f[i+1],所以:

​ dp[i]=in(dp[i]+1)+n−in(dp[i+1]+1)dp[i]=\frac{i}{n}(dp[i]+1)+\frac{n-i}{n}(dp[i+1]+1)dp[i]=ni​(dp[i]+1)+nn−i​(dp[i+1]+1)

其中,dp[n]=0dp[n]=0dp[n]=0

化为标准递归公式的形式,即为:dp[i]=dp[i+1]+nn−idp[i]=dp[i+1]+\frac{n}{n-i}dp[i]=dp[i+1]+n−in​

(别忘了转移的时候我们扔了一次骰子!)

Code
#include<cstdio>
#include<iostream>
#define ri register int
using namespace std;

const int MAXN=1020;
int t,n;
double dp[MAXN],ans;

int main()
{
	scanf("%d",&t);
	for(ri opt=1;opt<=t;opt++)
	{
		scanf("%d",&n);
		dp[n]=0;
		for(ri i=n-1;i>=0;i--)
			dp[i]=dp[i+1]+(double)n/(double)(n-i);
		printf("%.2f\n",dp[0]);
	}	
	return 0;
}
毕设加分项!手把手教你完成基于YOLOv8与PyQt5的多类别目标检测系统——让你的毕设从“完成”到“出色” 从KITTI数据集处理,到YOLOv8模型训练,再到PyQt5界面开发,整个流程其实没有想象中那么难。只要你跟着步骤一步步来,不仅能顺利完成毕设,还能掌握目标检测和GUI开发的核心技能——这些技能在未来的求职、读研中都非常实用。如果过程中遇到问题,别担心!可以去YOLOv8的官方文档、PyQt5论坛找答案,也可以和同学、老师交流。记住,完成毕设的过程也是你技术成长的过程,坚持下去,你会为自己的成果感到自豪。 阅读详情

相关推荐

Java农产品质量溯源大数据管理系统源码

产品追溯基于“一物一码”从工厂生产环节至销售阶段,赋予产品唯一的数码,并关联产品名称、批号、生产时间等信息,建立包装关联关系,为后期产品的追溯、营销搭建信息基础。 农产品溯源,从原材料收购、生产、加工质检到包装运输、终端门店销售等环节追溯,可以保证产品质量,监管部门和消费者都可以查询产品信息。对生产进行层层把关、一旦发现问题、立即进行处理、提升产品质量。

xingchen优快云的博客 1805

python——解决扔骰子小问题

1.问题 有一个n面的骰子,每一面分别为1~n,不断的投骰子,直到骰子上的数累加超过50停止,问这累加和的平均值是多少? 2.代码如下 import random n = int(input("请输入一个正整数n:")) a = range(1,n) count = 0 list1 = [] b = random.choice(a) list1.append(b) #print(sum(...

weixin_41869644的博客 2432

io_uring vs epoll ,谁在网络编程领域更胜一筹?

简介:从定量分析的角度,通过量化 io_uring 和 epoll 两种编程框架下的相关操作的耗时,来分析二者的性能差异。 本文作者:王小光,「高性能存储技术SIG」核心成员。 背景 io_uring 在传统存储 io 场景已经证明其价值,但 io_uring 不仅支持传统存储 io,也支持网络 io。io_uring 社区有众多的开发者尝试将 io_uring 用于网络应用。我们之前也在《你认为 io_uring 只适用于存储 IO?大错特错!》中也探索过 io_uring 在网络场景的应用及其

阿里云云栖号 3035

(LightOJ - 1248)Dice (III)(数学期望)

题目链接:Dice (III) - LightOJ 1248 - Virtual Judge (ppsucxtt.cn) 题意:给你一个n面的骰子,问使得骰子所有面都被骰出的期望次数。 这其实可以用概率dp来解决,但是我想在这用一下其他方法来求解。 这道题目的模型实际上是由n个几何分布的模型构成,比如说我们已经骰出了i个不同的点数,现在要骰出一个从未出现过的点数,那么我们成功的概率就是(n-i)/n,如果我们本次没有成功,那我们就需要再骰一次,直至成功为止,所以这显然就是一个几何分布的模型,他成功所需

AC__dream的博客 334

告别测序污染:手把手教你用Decontam+SCRUB+FEAST完成微生物组数据清洗全流程

本文详细解析了使用Decontam、SCRUB和FEAST三大工具完成微生物组数据清洗的全流程。从环境准备、数据导入到污染物识别、样本间污染校正及溯源分析,提供了一套可复用的污染校正工作流,帮助研究者提升数据质量,确保后续分析的可靠性。

weixin_33462927的博客 316

51单片机也能玩转信号发生器?手把手教你用DAC0832和LM358输出四种标准波形

本文详细介绍了如何使用51单片机和DAC0832芯片搭配LM358运放,自制低成本信号发生器,实现正弦波、矩形波、三角波和锯齿波四种标准波形的输出。从硬件选型、电路设计到编程实现,手把手教你完成这一实用电子项目,总成本不到50元,适合电子爱好者和学生实践。

weixin_30530939的博客 551

骰子游戏 python 实现

1.扔三颗骰子,求点数之和最大值出现的概率? 思想:三颗骰子的和数取值范围在[3,18],越靠近两边出现的概率越小,点数最大的应该在中间,以下计算9,10,11,12的概率: * * 首先计算出现9的概率:为了避免重复和遗漏,将点数和为9分成两种情况: (1)三个骰子点数都不相同:(1,2,6),(1,3,5),(2,3,4) (2)可以允许存在相同的点数:(2,2,5),(3,3,3),(4...

Jasminexjf的博客 1726

【OpenCV】图像的像素直方图 图像特征点 cv::FAST cv::ORB ORB_SLAM2::ORB

文章目录图像直方图代码实现cv::FAST和cv::ORB 检测图像特征点cv::FAST和cv::ORB 检测图像特征点代码实现ORB_SLAM2::ORB和自己实现ORB图像特征点检测效果对比ORB_SLAM2::ORB和自己实现ORB图像特征点检测效果对比代码实现 图像直方图代码实现 图像是由不同数值(颜色)的像素构成的,像素值在图像中的分布情况是图像的重要属性,可以用直方图修改图像的外观,标识图像的内容,检测图像中特定的物体或纹理。 单通道灰度图像中每个像素都有一个 0(黑色)-255(白色)的整

小秋 AI SLAM 入门实战教程 2510

剑指offer 面试题60 python版+解析:n个骰子的点数

题目描述: 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值的出现概率。 思路:定义两个数组。数组的长度为6*n,即可能出现的最大和。数组每个元素的值代表出现的次数,比如probability[5]表示点数和为5出现的次数。在一轮循环中,一个数组记录之前一次所有出现的情况,一个数组记录这一次的所有出现的情况。例如这一次出现和为n的次数,应该等于另一个数组里记录...

Yenpo Ma的博客 1667

【Davinci开发】:MPU(内存保护)

【Davinci开发】:MPU(内存保护)

2207

226届数字IC秋招笔试面试全攻略

本文系统介绍了数字IC设计岗位面试的核心技巧,聚焦三大关键环节:自我介绍、项目介绍和技术问题回答。在自我介绍部分,强调1-2分钟结构化表达,突出与岗位匹配的技能和量化成果;项目介绍环节提出"背景-职责-技术-难点-成果"五步框架,建议结合架构图和性能数据展示技术深度;技术问题回答策略包括理解问题、结构化思考、举例说明和诚实应对未知。文章还提供了项目包装方法,指导如何通过量化数据、架构创新展示和技术难点解决方案来突出项目亮点,并附有简历项目描述示例和技术问题回答模板,帮助面试者全方位展示专

2301_79143213的博客 1062

剑指offer第二版 面试题60 n个骰子的点数 python 动规

所有题目单独整理的版本存储在这里, 点击题目名字可以跳转到牛客网的成功提交记录,点击python可以看到存储库中的对应求解代码。 把n个骰子仍在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 def offer60(n): # 第n个骰子得到k的次数由n-1个骰子 k-1 ~ k-6 的个数和所决定,动规递推式 # f(n,k) = f(n-1...

Jasmine_dream 874

YOLOv11-seg改进系列 | 引入CVPR2022 MetaFormer,零参数池化Token混合+StarReLU MLP,精度涨不掉速

本文提出了一种改进YOLOv11分割任务的C3k2_PoolingFormer模块,通过引入MetaFormer架构和Pooling Token Mixer,在保持模型轻量化的同时增强全局感受野建模能力。核心创新包括:1)使用零参数的AvgPool3×3差值作为Token Mixer,实现高效邻域信息聚合和局部对比增强;2)采用StarReLU MLP替代传统激活函数,提升非线性表达能力。改进后模型仅增加6.1%参数量,却能显著提升分割精度,特别适用于需要长程依赖建模的实例分割任务。该设计为轻量级视觉模型提

qq_44224801的博客 431

SP1026 FAVDICE - Favorite Dice[期望DP]

Description\mathcal{Description}Description 一个nnn面的骰子,求期望掷几次能使得每一面都被掷到 输入有TTT组数据,每次输入一个nnn 输出保留两位小数 Solution\mathcal{Solution}Solution 设f[i]f[i]f[i]表示已经掷到过iii面,还 期望掷多少次骰子使每一面都被掷到 现在掷一次骰子,有两种情况 有in\fr...

Morning_Glory_JR的博客 541

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

SP1026 FAVDICE - Favorite Dice 题解

题目链接 看到所有题解都是倒退,却没有一个讲正推的,这里就来讲一下 设 fif_ifi​ 表示已经掷到过 iii 个不同面的时候需要的期望次数 初始化 f0=0f_0=0f0​=0 那么,转移方程显然是 fi=n−i+1n⋅fi−1+n−in⋅fi+1f_i = \frac{n-i+1}{n} \cdot f_{i-1}+\frac{n-i}{n} \cdot f_i +1fi​=nn−i+1​⋅fi−1​+nn−i​⋅fi​+1 化简后得到 fi=fi−1×(n−i+1)+nn−if_i=\frac{f_

Brian_Pan_的博客 262

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

(期望DP)【题解】SP1026 FAVDICE - Favorite Dice

题目 一个n面的骰子,求期望掷几次能使得每一面都被掷到。 link 题解 一个期望DP的常用状态设计方法: dp[i]表示当前已选了 iii 种点数,还需一直选到 nnn 种点数的丢骰子数的期望。 显然dp[n]=0,答案为dp[0] 现在考虑转移: 则每次丢骰子有两种状态。 和之前的点数一样,有 in\frac{i}{n}ni​ 的概率出现。记为 XXX。 和之前的点数不一样,有 n−in\frac{n-i}{n}nn−i​ 的概率出现。记为 YYY。 那么所以当前这一状态 E(i)=E(X)+E(Y

tanfuwen_的博客 835

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SP1026 FAVDICE - Favorite Dice 期望dp

传送门 文章目录题意:思路: 题意: 一个n面的骰子,求期望掷几次能使得每一面都被掷到。 思路: 考虑期望dpdpdp。定义f[i]f[i]f[i]表示有iii面了,还需要多少次能到nnn面。当前是iii面,所以选到新的面的概率是n−in\frac{n-i}{n}nn−i​,选到已经有的面的概率是in\frac{i}{n}ni​。那么转移也就比较明显了:f[i]=f[i+1]∗n−in+f[i]∗in+1f[i]=f[i+1]*\frac{n-i}{n}+f[i]*\frac{i}{n}+1f[i]=f[i

m0_51068403的博客 188

SP1026 FAVDICE - Favorite Dice 数学期望

Code: #include&lt;cstdio&gt; #include&lt;algorithm&gt; #include&lt;cstring&gt; using namespace std; #define maxn 1009 double dp[maxn]; int main(){ int n,t; scanf("%d",&amp;t); while(...

EM LGH 159

SP1026 FAVDICE - Favorite Dice(期望dp)

题意: 一个n面的骰子,求期望掷几次能使得每一面都被掷到。 数据范围:n<=1e3

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 403

概率DP—— SP1026 FAVDICE - Favorite Dice(洛谷)

SP1026 FAVDICE - Favorite Dice 1.题目含义: 掷一个n面的骰子,问每一面都被掷到的次数期望是多少。 2.思路(by——洛谷): #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;string&gt; #include&lt;cmath&...

SYITwin的博客 390

SP1026 FAVDICE - Favorite Dice(扔筛子期望)

题目链接 很老套的期望了 定义dp[i]dp[i]dp[i]为已经有iii面筛子扔过,还需要仍到nnn面的期望 那么dp[n]=0dp[n]=0dp[n]=0 p=inp=\frac{i}{n}p=ni​表示此时扔到已有的面的概率 dp[i]=(dp[i]+1)∗p+(dp[i+1]+1)∗(1−p)dp[i]=(dp[i]+1)*p+(dp[i+1]+1)*(1-p)dp[i]=(dp[i]+1)∗p+(dp[i+1]+1)∗(1−p) 意思是有p的概率从i面转移到i面,有(1−p)的概率转移到dp[i+

jziwjxjd的博客 414

N个M面骰子,点数和的概率分布[待学习]

索引目录:知乎:1次丢5个骰子的和分布                    n个骰子的和概率分布

poxiao8的博客 6289

leetcode之n个骰子的点数,python版本

书上写的还是比较晦涩难懂的。实际上用动态规划很好解决: #coding=utf8 def get_ans(n): dp = [[0 for i in range(6*n)] for i in range(n)] for i in range(6): dp[0][i] = 1 # print dp for i in range(1,n): #1...

leokingszx的博客 2829

Favorite Dice (SPOJ-FAVDICE)期望DP

BuggyD loves to carry his favorite die around. Perhaps you wonder why it's his favorite? Well, his die is magical and can be transformed into an N-sided unbiased die with the push of a button. Now Bug...

菜鸡的博客 278

期望——FAVDICE - Favorite Dice

题解: 假设当前已经丢除了i个面了,下一个面是新的概率是n−i/nn-i/nn−i/n我们知道概率的倒数是期望所以求和就行了。 #include <bits/stdc++.h> #define int long long using namespace std; using namespace std; const int N=10000010; int n,t; double ans; signed main(){ cin>>t; while(t--){

行走天涯的豆沙包的博客 208
上一篇: luoguP4316 绿豆蛙的归宿
下一篇: 平面(二维)凸包&&luoguP2742 【模板】二维凸包
guapi2333
博客等级 码龄9年 7粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值