欧拉积分(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连接.判断用所有字符串一次且仅一次,连接成一串.若可以,输出答案的最小字典序 ...
随机推荐
- MySQL同步ES方案
1. 前言 在实际项目开发中,我们经常将 MySQL 作为业务数据库,ES 作为查询数据库,用来实现读写分离,缓解 MySQL 数据库的查询压力,应对海量数据的复杂查询. 这其中有一个很重要的问题,就 ...
- Jetson Orin NX烧录+设备树更改?看这一篇就够了!
Jetson Orin NX烧录+设备树更改?看这一篇就够了! 笔者的设备为Jetson Orin NX 16GB + 达妙科技的Orin NX载板 本博客同步发表在CSDN:https://blog ...
- 命令行应用开发初学者指南:脚手架篇、UI 库和交互工具
在日常的前端开发工作中,我们经常依赖各种命令行工具来提高效率和代码质量.例如,create-react-app 和 eslint 等工具不仅简化了项目的初始化过程,还能自动执行代码检查和格式化任务.当 ...
- 震惊!推荐一款AI驱动的自动化测试神器:TestCraft
在当今快速迭代的软件开发环境中,自动化测试已经成为确保软件质量的重要一环.然而,传统的手动录制和编写测试脚本的方式不仅耗时耗力,还难以跟上敏捷开发的节奏. 本文将为大家介绍一款基于AI技术的自动化测试 ...
- PCA主成分分析的Python实现
技术背景 PCA主成分分析在数据处理和降维中经常被使用到,是一个非常经典的降维算法,本文提供一个PCA降维的流程分解,和对应的Python代码实现. 二维数据生成 如果没有自己的测试数据,我们可以生成 ...
- Java并发 —— 线程并发(二)
Java 锁 Java 中的锁是在多线程环境下,保证共享资源健康,线程安全的一种手段 线程操作某个共享资源之前,先对资源加一层锁,保证操作期间没有其他线程访问资源,操作完成后再释放锁 保持数据一致 ...
- C# 7.0 新特性:模式匹配 ( pattern matching)
C# 7.0 新特性:模式匹配 ( pattern matching ) 在 C# 中,is 是一个关键字,可以用来检查某个数据的类型是否为特定类型.这是一个表达式,返回类型为 boolean. 例如 ...
- "一基双台三智" 中电金信智慧监督解决方案构筑国央企风控堡垒
近年来,国务院国资委先后下发<关于进一步排查中央企业融资性贸易业务风险的通知>.<关于规范中央企业贸易管理严禁各类虚假贸易的通知>等各类监管法规,并在2024年初中央企业工作会 ...
- Android RNDIS gadget Windows免驱修改方案
过程简单粗暴,拿到竞品的设备,然后使用UsbTreeView查看设备的相关描述符. 对比发现接口抽象描述符和接口描述符不一致,直接修改Linux RNDIS gadget 驱动,将驱动中有关的两个描述 ...
- Solution -「NEERC 2016」Delight for a Cat 的一个尝试
\(\mathscr{Description}\) Link. 给定 \(n,k,m_s,m_e\) 和两个长为 \(n\) 的序列 \(\{s\},\{e\}\), 选择一个 \(S\sub ...