【BZOJ5146】有趣的概率 概率+组合数(微积分)
【BZOJ5146】有趣的概率
Description
Input
Output
Sample Input
Sample Output
题解:思路比较简单,过程比较复杂的数学题。首先本题有两种统计方法,一种的点是无标号的,另一种的点是有标号的,显然二者答案相等,但是无标号的比有标号的恶心多了。。。不过由于本人比较sb采用了无标号的方法,所以这里先讲我的做法:
至少有一个锐角等价于存在一个点,他左右两个点之间夹的圆弧大于一个半圆。所以我们不妨设圆是由$S$个点组成的($S\rightarrow \infty$),那么我们先钦定一个角做锐角,再固定它左边的点不动,然后枚举剩下的那段圆弧的长度,便能得到某个角是锐角的概率:
$p_1={\sum\limits_{i=1}^{\frac S 2}(S-i)C_i^{n-3} \over C_S^{n-1}}$ ----(1)
运用一点组合知识,便能将这个式子化简到这个形式:$p_1={n\over 2^{n-1}}$。(如果你组合学得不好,本文最后会给出推导过程。)
有n个点,所以概率再乘上n,但是我们好像忽视了一个情况:圆内一个凸多边形可能有两个锐角!
所以我们把这个重复的部分去掉即可,由于两个锐角一定是相邻的,所以我们可以钦定某两个点是锐角,某对相邻的角全是锐角的概率是:
$p_2={\sum\limits_{i=1}^{\frac S 2}(\frac S 2-i)C_i^{n-2} \over C_S^{n-1}}$ ----(2)
推导过程类似,最后得到:$p_2=\frac 1 {2^{n-2}}$
所以最终答案就是:$(p_1-p_2)n=\frac {n(n-2)} {2^{n-1}}$。
如果用有标号的方法的话(Orz xqz),用微积分可以很快的解决问题(其实本质思想差不多),这里不给出式子了(其实是没学过)。
代码就不贴了。。。
附推导过程↓↓↓
先声明,在后面的式子中,某些变量趋近于无穷,因此我会舍弃它们后面的常数项。具体过程如下:
首先解释(1),(2)式的含义。(1)式中,我们先固定了一个点A,然后选择了A在顺时针方向的后两个点B,C,接着枚举了剩下那段圆弧的长度i,其中B对应的角是锐角,i可以看作弧AC的长度。那么,B的位置可以在剩余S-i个点中任取,其余n-3个点可以在i个点中任取,所以就是$(S-i)C_i^{n-3}$。最后总方案数可以看成固定一个点,其余的点在S中任取,就是$C_S^{n-1}$。

我们将分子的(S-i)拆开处理,然后将S提出来。首先有$\sum\limits_{i=1}^m C_i^n=C_m^{n+1}$,因为这可以看成在m个物品中选n个,你枚举编号最大的那个物品的编号得到的结果。于是前一部分就变成$S\times C_{S\over 2}^{n-2}$。又因为$iC_i^n=(i+1)C_i^n=(n+1)C_i^{n+1}$,所以我们又可以套用前面的式子,那么后一部分就变成了$(n-2)\times C_{S\over 2}^{n-1}$。
继续化简:${S\cdot C_{S\over 2}^{n-2}-(n-2)C_{S\over 2}^{n-1}\over C_S^{n-1}}\\={{2\cdot {S\over 2}({S\over 2})!\over (n-2)!({S\over 2}-(n-2))!}-{(n-2)({S\over 2})!\over (n-1)!({S\over 2}-(n-1))!}\over{S!\over (n-1)!(S-(n-1))!}}\\={{2(n-1)({S\over 2})!\over (n-1)!({S\over 2}-(n-1))!}-{(n-2)({S\over 2})!\over (n-1)!({S\over 2}-(n-1))!}\over{S!\over (n-1)!(S-(n-1))!}}\\={n({S\over 2}!)(S-(n-1))!\over S!({S\over 2}-(n-1))!}\\={n\over 2^{n-1}}$
(2)式中,我们先固定了固定了一个点a,然后选择它在顺时针方向的下一个点b,要求a顺时针到b的这条圆弧大于一个半圆,接着枚举b到a这段劣弧的长度i,那么b可以在${S\over 2}-i$个点里选,剩余的点可以在i个点里选,这样就能保证角a和角b都是锐角了。方案数是$({S\over 2}-i)C_i^{n-2}$。推导过程略。

【BZOJ5146】有趣的概率 概率+组合数(微积分)的更多相关文章
- HDU 5001 概率DP || 记忆化搜索
2014 ACM/ICPC Asia Regional Anshan Online 给N个点,M条边组成的图,每一步能够从一个点走到相邻任一点,概率同样,问D步后没走到过每一个点的概率 概率DP 測 ...
- Hello 2019 D 素因子贡献法计算期望 + 概率dp + 滚动数组
https://codeforces.com/contest/1097/problem/D 题意 给你一个n和k,问n经过k次操作之后留下的n的期望,每次操作n随机变成一个n的因数 题解 概率dp计算 ...
- [CSP-S模拟测试]:糊涂图(概率DP)
题目传送门(内部题76) 输入格式 第一行输入三个空格隔开的整数$n,m,s$表示随机加一条边之前的糊涂图的点数,边数,以及起点的编号. 接下来$m$行,每行两个空格隔开的整数$a,b$表示从$a$到 ...
- 线性推概率——cf1009E好题!
依次求每一段公里的期望消耗即可,这是可以递推的 dp[i]表示每公里的期望消耗 dp[i]=1/2*a1+1/4*a2 +...+1/2^(i-1)*ai-1 + 1/2^(i-1)*ai注意最后一项 ...
- 《x的奇幻之旅》:有趣的数学科普
本书是相对比较少见的数学方面的科普书.从最简单的阿拉伯数字.加减法,一直到概率统计.微积分.群论.拓扑.微分几何,每个主题都用几千字做一些深入浅出的介绍.写的相当的有趣. 在书中又一次看到这个有趣的事 ...
- Codeforces Gym10081 A.Arcade Game-康托展开、全排列、组合数变成递推的思想
最近做到好多概率,组合数,全排列的题目,本咸鱼不会啊,我概率论都挂科了... 这个题学到了一个康托展开,有点用,瞎写一下... 康托展开: 适用对象:没有重复元素的全排列. 把一个整数X展开成如下形式 ...
- CodeForces 352D. Jeff and Furik
题意:给n个数,第一个人选取相邻两个递降的数交换顺序,第二个人一半的概率选取相邻两个递降的数交换顺序,一半的概率选取相邻两个递增的数交换顺序.两个人轮流操作,求整个数列变成递增数列所需交换次数的期望. ...
- 互联网,IT,大数据,机器学习,AI知识tag云
互联网基础: tcp/ip网络,linux运维,DNS,ipv6 web前端: javascript, es6, 组件化开发, vuejs, angularjs, react html5, css3, ...
- Bzoj2038 小Z的袜子(hose)
Time Limit: 20000MS Memory Limit: 265216KB 64bit IO Format: %lld & %llu Description 作为一个生活散漫 ...
随机推荐
- VBscript实现开机自动启动,自动复制原件后启动
set fso = createobject("scripting.filesystemobject") set ws = createobject("wscript.s ...
- jenkins 升级jdk到1.8.0 报java.io.IOException:Unable to read /var/lib/jenkins/config.xml
今天手动下载安装了jdk1.8.0, 并修改了配置文件,当前默认使用该版本的jdk.但是报出一下错误: 问题查到: https://issues.jenkins-ci.org/browse/JENKI ...
- VC++调用MSFlexGrid的SetRow方法,出现异常“Invalid Row Value”
MSFlexGrid是微软提供的网格表格控件,SetRow方法用于设置当前焦点所在行. C++ Code 12345 void CMSFlexGrid::SetRow(long nNewVal ...
- windows 环境内网超快同步 DFS
记录下: 在WINDOWS环境下,内网同步使用DFS可以超快实现文件同步,效果非常OK 纯粹记录下!
- mysql中如何开启binlog?开启二进制日志文件?binary log?
需求描述: 开启mysql的binlog即binary log日志功能,在此记录下. 版本描述: mysql版本:5.7.21-log 操作过程: 1.修改my.cnf并且将以下参数加入其中,重启my ...
- nodejs与Promise的思想碰撞
玩node的同志们都知道,当这门语言被提出来的时候,作为自己最为骄傲的异步机制,却被PHP和Python等战团喷得不成样子的是,他们嘲笑着nodejs那蠢蠢的无限嵌套,nodejs战团只能以我们只要性 ...
- Tomcat------启动时报错:Failed to start component [StandardEngine[Catalina].StandardHost[localhost].
启动报错信息: Failed to start component [StandardEngine[Catalina].StandardHost[localhost] 因此出现这种错误的原因可能有: ...
- IIS------如何安装IIS
1.打开“控制面板”->“程序”->“打开或关闭Windows功能” 2.如图所示: 3.如图所示: 4.点击确定,配置完成
- 在Windows系统上搭建aria2下载器
Aria2是一个命令行下运行.多协议.多来源下载工具(HTTP/HTTPS.FTP.BitTorrent.Metalink),并且支持迅雷离线以及百度云等常用网盘的多线程下载(甚至可以超过专用客户端的 ...
- Python中的yield和Generators(生成器)
本文目的 解释yield关键字到底是什么,为什么它是有用的,以及如何来使用它. 协程与子例程 我们调用一个普通的Python函数时,一般是从函数的第一行代码开始执行,结束于return语句.异常或者函 ...