欧拉积分(Genshin)
\(\Gamma\) 函数
引入、定义
在计算组合数式子的时候,我们时常会看到这样的式子:
\]
然而,我们不知道什么是负数或者什么其他数的阶乘。这里必须引入一个特殊函数——\(\Gamma\) 函数。
\]
有
\]
那么可以归纳得知
\]
根据上面的结果,我们可以对 \(\Gamma(z)\) 延拓至全体实数,除了负整数。
但是可以计算 \(\Gamma(z)\) 在 \(z=-n\) 处的留数:
\]
欧拉无穷乘积:
令
\]
有
\]
证明:
首先注意到
\]
然后两式相减。
=\lim_{n\to \infty}\left(\int_0^n(e^{-t}-(1-\frac t n)^n)t^{z-1}dt-\int _n^{\infty}e^{-t}t^{z-1}dt\right)\\
=\lim_{n\to \infty}\int_0^n\left[e^{-t}-(1-\frac t n)^n\right]t^{z-1}dt
\]
熟知不等式
\]
故
\le e^{-t}\left(1-e^t(1-\frac{t^2}{n^2})^n\right)
\]
根据伯努利不等式 \((1-x)^n\ge 1-nx(x\in [0,1])\)。
\]
于是
\le \lim_{n\to\infty} \left|\frac 1 n\int_0^ne^{-t}t^{z+1}dt\right|\\
=0
\]
证毕。
而在
\]
中,令 \(\frac{t}n\to t\),得到
\]
这个式子可以分部积分然后转为递推式,最终得到:
\]
尝试代入上面证明的式子:
=\lim_{n\to \infty}\frac{1}{z}\left(\prod_{i=1}^n\frac{i}{z+i}\right)\left(\prod_{i=1}^{n-1} (1+\frac{1}{i})^z\right)\\
=\frac{1}{z}\prod_{i=1}^{\infty}\left(\frac{k}{z+k}(1+\frac 1 k)^z\right)\\
=\color{red}{\frac{1}{z}\prod_{n=1}^{\infty}\left(\left(1+\frac{z}{n}\right)^{-1}\left(1+\frac 1 n\right)^z\right)}
\]
这是欧拉无穷乘积。
魏氏无穷乘积
欧拉无穷乘积得到
\]
考虑 \(n^z\)。
=\prod_{k=1}^n e^{\frac zk}\times \exp(z(\ln n-\sum _{k=1}^n\frac1k))\\
\lim _{n\to\infty}n^z=\prod_{k=1}^n e^{\frac zk}\times e^{-\gamma z}
\]
所以
\]
这是魏氏无穷乘积。
余元公式
考虑
\]
而有(根据 \(\cot\) 的展开式积分(?),\(\ln\sin x'=\cot x\))
\]
那么
\]
有 \(\Gamma(-z)=-z\Gamma(1-z)\),则:
\]
直接取 \(z=\frac 12\) 然后就可以顺便得到余元公式。
OI 的应用大概到这里就结束了。
据此可以得到一个重要结论:
\]
\(\Beta\) 函数
定义:
\]
性质 1:\(\Beta(p,q)=\Beta(q,p)\),显然。
性质 2:\(\Beta(p,q)=\dfrac{\Gamma(p)\Gamma(q)}{\Gamma(p+q)}\)。
证明:考虑
\text{令 }t=x^2,s=y^2\\
\Gamma(p)\Gamma(q)=4\int_0^{+\infty}x^{2p-1}e^{-x^2}dx\int_0^{+\infty}y^{2p-1}e^{-y^2}dy\\
=4\int_0^{+\infty}\int_0^{+\infty}x^{2p-1}y^{2p-1}e^{-(x^2+y^2)}dxdy\\
\text{令 }x=r\cos \theta,y=r\sin\theta\\
=4\int_0^{+\infty}e^{-r^2}r^{2(p+q)-1}dr\int _0^{\frac\pi 2}(\cos \theta)^{2p-1}(\sin \theta)^{2q-1} d\theta\\
\text{令 } t=r^2,x=\cos^2\theta\\
=-\int_0^{+\infty}e^{-t}t^{p+q-1}dt\int _1^0x^{p-1}(1-x)^{q-1} dx\\
=\int_0^{+\infty}e^{-t}t^{p+q-1}dt\int _0^1x^{p-1}(1-x)^{q-1} dx\\
=\Gamma(p+q)\Beta(p,q)
\]
那么 \(B(p,q)=\dfrac{\Gamma(p)\Gamma(q)}{\Gamma(p+q)}=\dfrac{(p-1)!(q-1)!}{(p+q-1)!}\)。
可以计算:取值 \([0,1]\) 的 \(n\) 个连续随机变量的 \(k\) 小。
首先设此随机变量为 \(X\)。设其概率密度函数为 \(f(x)\),概率分布函数为 \(F(x)=P(X\le x)\)。
=[xF(x)] _0^1-\int_0^1F(x)dx\\
=1-\int _0^1F(x)dx=\int_0^1(1-F(x))dx
\]
考虑 \(P(X\ge x)\),即至多有 \(m-1\) 个 \(<x\)。
\int _0^1(1-F(x))dx=\sum_{i=0}^{m-1}\binom ni\int_0^1x^i(1-x)^{n-i}dx\\
=\sum_{i=0}^{m-1}\Beta(i+1,n-i+1)\binom ni\\
=\sum _{i=0}^{m-1}\frac 1{n+1}=\frac{m}{n+1}
\]
ABC226H
考虑求出答案属于 \([x,x+1]\),且有 \(b\) 个落在中间的概率。
设 \(dp(a,b,c)\) 为 \(a\) 个 \(<x\),\(b\) 个 \(\in[x,x+1]\),\(c\) 个 \(>x+1\) 的概率,容易 dp。
利用上面的公式容易求答案。
// Problem: [ABC226H] Random Kth Max
// Platform: Luogu
// URL: https://www.luogu.com.cn/problem/AT_abc226_h
// Memory Limit: 1 MB
// Time Limit: 2000 ms
// Author:British Union
// Long live UOB and koala
//
// Powered by CP Editor (https://cpeditor.org)
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=105,mod=998244353;
int qp(int a,int b){
if(b==0)return 1;
int T=qp(a,b>>1);
T=T*T%mod;
if(b&1)return T*a%mod;
return T;
}
int inv[maxn],n,k,dp[55][55][55],l[maxn],r[maxn],E=0;
struct st{
int a,b,c;
st(int x=0,int y=0,int z=0){
a=x,b=y,c=z;
}
};
vector<st> sts[maxn];
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n>>k;k=n-k+1;
for(int i=1;i<=n;i++)cin>>l[i]>>r[i];
for(int i=1;i<=100;i++)inv[i]=qp(i,mod-2);
for(int i=0;i<=n;i++){
for(int j=0;j<=n;j++){
for(int k=0;k<=n;k++){
if(i+j+k<=n)sts[i+j+k].push_back(st(i,j,k));
}
}
}
for(int i=0;i<100;i++){
memset(dp,0,sizeof(dp));
dp[0][0][0]=1;
for(int j=1;j<=n;j++){
for(auto V:sts[j]){
int a=V.a,b=V.b,c=V.c;
if(r[j]<=i){
if(a)dp[a][b][c]=dp[a-1][b][c];
}
else if(l[j]>=i+1){
if(c)dp[a][b][c]=dp[a][b][c-1];
}
else{
int L=r[j]-l[j];
if(b)dp[a][b][c]+=dp[a][b-1][c]%mod;
if(a)dp[a][b][c]+=dp[a-1][b][c]*(i-l[j])%mod;
if(c)dp[a][b][c]+=dp[a][b][c-1]*(r[j]-i-1)%mod;
dp[a][b][c]=dp[a][b][c]*inv[L]%mod;
}
}
}
for(auto V:sts[n]){
int a=V.a,b=V.b,c=V.c;
if(a+b>=k&&a<k&&dp[a][b][c]!=0){
E+=(i+(k-a)*inv[b+1])%mod*dp[a][b][c]%mod;
E%=mod;
}
}
}
cout<<E<<endl;
return 0;
}
欧拉积分(Genshin)的更多相关文章
- hdu2588 GCD (欧拉函数)
GCD 题意:输入N,M(2<=N<=1000000000, 1<=M<=N), 设1<=X<=N,求使gcd(X,N)>=M的X的个数. (文末有题) 知 ...
- BZOJ 2705: [SDOI2012]Longge的问题 [欧拉函数]
2705: [SDOI2012]Longge的问题 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 2553 Solved: 1565[Submit][ ...
- BZOJ 2818: Gcd [欧拉函数 质数 线性筛]【学习笔记】
2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 4436 Solved: 1957[Submit][Status][Discuss ...
- Euler-Maruyama discretization("欧拉-丸山"数值解法)
欧拉法的来源 在数学和计算机科学中,欧拉方法(Euler method)命名自它的发明者莱昂哈德·欧拉,是一种一阶数值方法,用以对给定初值的常微分方程(即初值问题)求解.它是一种解决常微分方程数值积分 ...
- COGS2531. [HZOI 2016]函数的美 打表+欧拉函数
题目:http://cogs.pw/cogs/problem/problem.php?pid=2533 这道题考察打表观察规律. 发现对f的定义实际是递归式的 f(n,k) = f(0,f(n-1,k ...
- poj2478 Farey Sequence (欧拉函数)
Farey Sequence 题意:给定一个数n,求在[1,n]这个范围内两两互质的数的个数.(转化为给定一个数n,比n小且与n互质的数的个数) 知识点: 欧拉函数: 普通求法: int Euler( ...
- 51Nod-1136 欧拉函数
51Nod: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1136 1136 欧拉函数 基准时间限制:1 秒 空间限制: ...
- FZU 2112 并查集、欧拉通路
原题:http://acm.fzu.edu.cn/problem.php?pid=2112 首先是,票上没有提到的点是不需要去的. 然后我们先考虑这个图有几个连通分量,我们可以用一个并查集来维护,假设 ...
- 欧拉函数 - HDU1286
欧拉函数的作用: 有[1,2.....n]这样一个集合,f(n)=这个集合中与n互质的元素的个数.欧拉函数描述了一些列与这个f(n)有关的一些性质,如下: 1.令p为一个素数,n = p ^ k,则 ...
- POJ 2337 Catenyms(有向图的欧拉通路)
题意:给n个字符串(3<=n<=1000),当字符串str[i]的尾字符与str[j]的首字符一样时,可用dot连接.判断用所有字符串一次且仅一次,连接成一串.若可以,输出答案的最小字典序 ...
随机推荐
- Shiro 漏洞复现
Shiro 漏洞复现 shiro是什么? ApacheShiro是一个灵活且全面的Java安全框架,它为现代应用程序提供了认证.授权.加密和会话管理等核心安全功能. shiro组件识别 1.在访问及登 ...
- 2019-2020 ACM-ICPC Brazil Subregional Programming Contest
D. Denouncing Mafia 给定一颗树,然后给定\(k\)个起点,对于每个起点来说,从该点到根节点的一条链都会被染色,求最多有几个点会被染色 \(3 \leq n \leq 1e5, 1 ...
- kali 安装 shodan
声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无 ...
- IEDA 控制台乱码解决
1.修改idea 目录下的文件 idea64.exe.vmoptions idea.exe.vmoptions 在这个文件尾部增加 -Dfile.encoding=UTF-8 2.编辑ieda 文件配 ...
- js 计算过去和未来的时间距离现在多少天
计算传入的任意一时间.计算出这个时间距离现在还有多少天!或者计算过去的时间距离现在已经过去了多少天! 返回值有两种! 1.负值 代表过去了多少天 2.正值 代表距离设定的时间还有多少天 说明:距离设定 ...
- Git 浅克隆后拉取其他分支
对于已浅克隆的项目 $ git clone --depth=1 <git-repo-url> repo $ cd repo 现在浅克隆了一个Git仓库repo.但仓库里查询远程分支只有一个 ...
- 关于 Span 的一切:探索新的 .NET 明星: 3.什么是 Memory<T>,以及为什么你需要它?
3. 什么是 Memory<T>,以及为什么你需要它? 1. Span<T> 是什么? 2. Span<T> 是如何实现的? 3. 什么是 Memory<T& ...
- .net delegate 万能适配
遇到一个技术点,记一下,.net 有一个 Delegate Marshall.GetDelegateForFunctionPointer(IntPtr ptr, Type t) 用来将内存地址映射为一 ...
- Qt编写地图综合应用45-路径规划
一.前言 路径规划一般是根据起始点坐标经纬度和结束点坐标经纬度,查询出合适的路线.关于起始坐标和结束坐标,最开始做的是直接传入具体中文地址即可,后面百度地图不再开放此功能,貌似变成了收费功能,但是经纬 ...
- _findnext()调试中断,发生访问错误,错误定位到ntdll.dll
问题: 采用_findfirst和_findnext获取指定的文件夹下的文件时,_findnext()函数在调试时发生中断,发生访问错误,错误定位到ntdll.dll.错误提示如下所示: _findn ...