首页 > 其他分享 >【做题笔记】收集邮票 做题笔记

【做题笔记】收集邮票 做题笔记

时间:2024-09-22 20:35:52浏览次数:15  
标签:邮票 期望 收集 int 笔记 frac

P4550 收集邮票

展开目录

目录

Reading

\(k\ge 1\) 时,可以通过支付 \(k\) 元钱获得一张 \(n\) 种邮票中的某种邮票。这 \(n\) 种邮票等概率出现,求买到全部 \(n\) 种邮票的花费期望。

Step 1

\(k\) 次 \(k\) 元太难搞了,干脆直接全打成 \(1\) 元。

设买到 \(i\) 张邮票,要买完全部 \(n\) 种所需的期望价格为 \(f_i\).显然 \(f_n = 0\).

当买到 \(i\) 张邮票时,下次有 \(\frac{i}{n}\) 的概率买到有的,\(\frac{n-i}{n}\) 的概率买到没有的。

前者期望为 \(\frac{i}{n}f_i\),后者为 \(\frac{n-i}{n}f_{i+1}\).

得到总期望为:

\[f_i=\frac{i}{n}f_i+\frac{n-i}{n}f_{i+1}+1 \]

化简可得:

\[f_i=f_{i+1}+\frac{n}{n-i} \]

Step 2

接下来扩展到 \(k\) 次 \(k\) 元。

设 \(g_i\) 为当前买了 \(i\) 张邮票,要买完全部 \(n\) 种的期望价格。很显然 \(g_n\) 也是 \(0\).

于是买到已经有的邮票的期望是 \(\frac{i}{n}(g_i+f_i+1)\),否则期望为 \(\frac{n-i}{n}(g_{i+1}+f_{i+1}+1)\).

所以总期望为:

\[g_i=\frac{i}{n}(g_i+f_i+1)+\frac{n-i}{n}(g_{i+1}+f_{i+1}+1) \]

化简可得:

\[g_i=\frac{n}{n-i}f_i+g_{i+1} \]

Code

因为只需要推两个式子,直接从 \(n\) 开始逆推。可以滚动优化。

展开代码
#include <bits/stdc++.h>
#define ll long long
#define MyWife Cristallo
using namespace std;
int n;
double f, g;
int main() {
	scanf("%d", &n);
	for(int i = n; i; --i) f += n / (n - i + 1) * 1.0, g += n * f / (n - i + 1) * 1.0;
	printf("%.2lf\n", g);
	return 0;
}

彩蛋

怎么能少了sb错误呢:

image

标签:邮票,期望,收集,int,笔记,frac
From: https://www.cnblogs.com/Kiichi/p/18425789/4550note

相关文章

  • 关于​​Vue学习笔记6中纯JavaScript实现的改进优化1
    0前言在 Vue学习笔记6:分别使用纯JavaScript和Vue的v-if指令来有条件地渲染网页元素_PurpleEndurer@5lcto的技术博客_51CTO博客的纯JavaScript实现有条件地渲染网页元素中,我们列举了苹果、桔子和葡萄3种水果,并使用3个<p>...</p>来对应,在实现显示用户选择的水果的showFruit函数中,......
  • 软件测试笔记1
    能独立针对web项目实施功能测试一、测试介绍什么是软件测试?使用技术手段验证软件是否满足需求测试主流技能1、功能测试2、自动化测试3、接口测试4、性能测试主流方向建议: 1、功能测试+接口测试 2、自动化测试+接口 3、功能+性能二、测试常用分类分类......
  • 力扣刷题笔记
    有序数组的平方:我的错误解法:publicclassTest{publicstaticvoidmain(String[]args){Solutions=newSolution();int[]nums={-5,-3,-2,-1};System.out.println(Arrays.toString(s.removeElement(nums)));;}}classSolutio......