首页 > 其他分享 >TJOI 2015 概率论 题解

TJOI 2015 概率论 题解

时间:2023-04-16 14:11:12浏览次数:45  
标签:4x 题解 TJOI 卡特兰 ge dfrac 2015 sum 2j

TJOI 2015 概率论 题解

题意

求 \(n\) 个点随机生成的有根二叉树(所有互不同构的二叉树出现情况等概率)的叶子节点数的期望值。

题解

70

答案显然是 \(\dfrac{g(n)}{f(n)}\) ,\(g(n)\) 是 \(n\) 个点为所有二叉树的叶子总数, \(f(n)\) 是 \(n\) 个点能生成的二叉树数。

一棵树可以用左右儿子与根节点拼接而成。

显然 \(f_i=\sum_{j=0}^{i-1} f_j f_{i-j-1}\)

同理 \(g\) 也可以用 \(f\) 转移,需要高精度。

当然考试后我懒得写用 py 验证了一下正确性。

n = int(input())
f = []
g = []
for i in range(0, 101):
    f.append(0)
    g.append(0)

f[0] = f[1] = g[1] = 1

for i in range(2, n + 1):
    for j in range(0, i):
        f[i] += f[j] * f[i - j - 1]
        g[i] += g[j] * f[i - j -  1] + f[j] * g[i - j - 1]

ans = 1.0 * g[n] / f[n]
print('%.9f' % ans)

100

前置知识:生成函数,卡特兰数,牛顿二项式定理。

1

我们要观察 \(f\) :这其实就是卡特兰数的递推式。即 \(f(n)\) 是卡特兰数第 \(n\) 项。

先补一课:卡特兰数的封闭形式。

对于卡特兰数 \(f_i=\sum_{j=0}^{i-1} f_j f_{i-j-1}\) ,且 \(f_0=f_1=1\) ,设其生成函数 \(F(x)=\sum_{i\ge0}f_i x^i\)

\(f\) 的递推式很像卷积,可以将 \(F\) 卷起来:

\(F^2(x)=\sum_{i\ge 0} x^i\sum_{j=0}^{i}f_j f_{i-j}\)

发现 \(x\) 的次数与我们想要的形式差了 1 ,变化一下。

\(xF^2(x)=\sum_{i\ge 1} x^i\sum_{j=0}^{i-1}f_j f_{i-j-1}=\sum_{i\ge 1}f_i x^i\)

就相差 \(i=0\) 项,所以 \(xF^2(x)+1=F(x)\) ,解得 \(F(x)=\dfrac{1\pm\sqrt{1-4x}}{2x}\)

如何取舍?分子有理化: \(F(x)=\dfrac{2}{1\mp\sqrt{1-4x}}\) ,带入 \(x=0\) ,得到常数项。

发现符号时加号时满足 \(f_0=F(0)=1\) ;但减号时分母为 0 ,舍去

所以 \(F(x)=\dfrac{1-\sqrt{1-4x}}{2x}\)

2

同理,我们来处理叶子个数 \(g\) ,

\(g_i=[i=1]+\sum_{j=0}^{i-1}f_j g_{i-j-1}+g_j f_{i-j-1}\)

设 \(g\) 的生成函数为 \(G\) ,则 \(G(x)=2xF(x)G(x)+x^1\)

解得 \(G(x)=\dfrac{x}{1-2xF(x)}=\dfrac{x}{\sqrt{1-4x}}\)

根据牛顿二项式定理,

\[\begin{aligned} G(x)&=x(1-4x)^{-\frac{1}{2}}\\ &=x\sum_{i\ge 0}\binom{-\frac{1}{2}}{i}(-4x)^i\\ &=x\sum_{i\ge 0}(-4)^i x^i\dfrac{(-\frac{1}{2})^{\underline{i}}}{i!}\\ &=x\sum_{i\ge 0}x^i\prod_{j=1}^i \dfrac{-(2j-1)}{2\times j}\times(-4) \end{aligned} \]

连乘不连续,考虑化成连续。

\[=x\sum_{i\ge 0}x^i\prod_{j=1}^i\dfrac{(2j-1)(2j)}{(2j)(2j)}\times 4\tag{1} \]

这样上下都连续了。

\[G(x)=x\sum_{i\ge 0} x^i\dfrac{(2i)!}{(i!)^2} \]

得到封闭形式。求 \(g_n\) 就是 \(x^n\) 项的系数。

\(g_n=\dfrac{(2n-2)!}{(n-1)!^2}\)

带入卡特兰数通向公式 \(f_n=\binom{2n}{n}-\binom{2n}{n-1}=\)

所以化简可得 \(ans=\dfrac{g_n}{f_n}=\)

标签:4x,题解,TJOI,卡特兰,ge,dfrac,2015,sum,2j
From: https://www.cnblogs.com/KonjakLAF/p/17323211.html

相关文章

  • abc249_d Index Trio 题解
    IndexTrio题意给定长度为\(n\)的整数序列\(a=(a_1,a_2,\dots,a_n)\)。请你求出有多少个整数三元组\((i,j,k)\)满足:\(1\leqslanti,j,k\leqslantN\)\(\frac{a_i}{a_j}=a_k\)数据范围\(1\leqslantn,a_i\leqslant2\times10^5\)思路转变式子:\(......
  • Ubuntu系统硬盘安装到其他的电脑上,网络连接不上问题解决
    把Ubuntu系统硬盘安装到其他的电脑上,网络连接不了在一台i5电脑上安装好ubuntu18.04后,把该系统磁盘安装到另外一台i5电脑上。系统可以成功启动,但是不能正常上网。解决办法如下:1)用下面这个命令查看本台电脑上可用的网络接口$ifconfig-a#查看可用的网络接口$iplinks......
  • 题解:【ABC298G】Strawberry War
    题目链接场上被F干碎了,没看见这个典题。原题差不多是这个吧......
  • 栈和队列经典题题解
    目录......
  • NOC 2022 初中组选择和编程题题解
    NOC2022初中组选择题和编程题题解注意:本文有几个问题:部分题目我也不确定答案,而且我水平不行,有些题目我还真不会,大家就把我的答案当个参考吧。目前有一大半的题目因为作者比较懒,暂时没写,空在那儿,可以下载原题自己做做。1初中组选拔赛原题链接,提取码:efy6。1.1选择题......
  • 超级码力初赛第三场 最大公倍数 题解
    题目描述小栖有一个区间[a,b],他准备从中取三个数,他想知道如何取才能使得它们的最小公倍数最大请直接告诉小栖最小公倍数是多少。1<=a<b<=5000b-a>=2示例示例1:输入:a=3,b=6输出:60样例解释:4,5,6的最小公倍数是60来源:九章算法解题思路每三个数为一......
  • windows pip问题解决(working)
    当pip无法起效时,尝试python-mpippython-mpip会使用您指定为python的Python解释器来执行pip。因此,/usr/bin/python3.7-mpip表示您正在执行位于/usr/bin/python3.7的解释器的pip。如果您不熟悉这个标志以及它是如何工作的,您可以阅读有关-m的文档......
  • 【Visual Leak Detector】在 VS 2015 中使用 VLD
    说明使用VLD内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍在VS2015中使用VLD。同系列文章目录可见《内存泄漏检测工具》目录目录说明1.使用前的准备3.在VS2015中使用VLD3.1无内存泄漏时的输出报告3.2有内存泄漏时的输出报告4.无法正常使用的可能原因1.......
  • git 遇到的CApath: none问题解决
    在适应git时,遇到了如下问题。fatal:unabletoaccess'https://github.com/brunosimon/folio-2019.git/':errorsettingcertificateverifylocations: CAfile:D:/明月下/Git/mingw64/ssl/certs/ca-bundle.crtCApath:none第一反应是查找这个文件是什么,在不在。首先这......
  • [P4317 花神的数论题]题解
    P4317花神的数论题【数位DP】题目描述最开始其实没有什么想法第一次遇见数位dp求相乘的题想就按照常规做法来做,但不知道如何去处理*于是写了一个错误的代码//当前枚举到第id位,前面的1的个数为sum,是否达到上限limitlldfs(intid,intsum,intlimit){//1.出口if(id==......