黎曼zeta函数的c++实现

#include<cmath>
using namespace std;
template<class T>
T Zeta(T s,double prec){
   
	if(s<0&&(int)s==s&&(int)-s%2==0) return T(0);
	T sc=static_cast<T>(1 - static_cast<T>(s));
	T sum=0,mult=0.5,change;
	T powers[100000]={
   0,};//cache有多大开多大
	unsigned n=0;
	do{
   
		T binom=-static_cast<T>(n);
		T ns=1;
		if
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
首先,我们需要了解黎曼 zeta 函数的定义: $$\zeta(s)=\sum_{n=1}^{\infty}\frac{1}{n^s}$$ 其中,$s$ 是一个复数。当 $s$ 的实部大于 $1$ 时,黎曼 zeta 函数是收敛的。当 $s=1$ 时,黎曼 zeta 函数的值为无穷大。 黎曼 zeta 函数的一个重要性质是,它可以被解析延拓到整个复平面,除了 $s=1$ 这个点存在一个极点。具体来说,黎曼 zeta 函数可以被写成以下形式: $$\zeta(s)=\frac{1}{\Gamma(s)}\int_{0}^{\infty}\frac{x^{s-1}}{e^x-1}\mathrm{d}x$$ 其中,$\Gamma(s)$ 是欧拉伽玛函数。 接下来,我们来证明素数的频率与黎曼 zeta 函数的零点相关。为此,我们需要引入另一个函数 $\psi(x)$,它被定义为: $$\psi(x)=\sum_{n\leq x}\Lambda(n)$$ 其中,$\Lambda(n)$ 表示 n 的 von Mangoldt 函数,即: $$\Lambda(n)=\begin{cases}\ln p, & \text{if }n=p^k\text{ for some prime }p\text{ and integer }k\geq 1\\0, & \text{otherwise}\end{cases}$$ 通过分部积分,可以得到: $$\psi(x)=x-\sum_{\rho}\frac{x^{\rho}}{\rho}-\ln 2\pi-\frac{1}{2}\ln(1-x^{-2})$$ 其中,$\rho$ 是黎曼 zeta 函数的零点。 接下来,我们需要证明的是,当 $x$ 趋近于正无穷时,$\psi(x)$ 与素数的个数 $\pi(x)$ 之间的关系是: $$\psi(x)\sim x\ \text{as}\ x\rightarrow\infty$$ 其中,“$\sim$”表示“渐进等于”。 这个结论可以通过黎曼-底格尔公式得到。黎曼-底格尔公式是一个重要的数学公式,它描述了黎曼 zeta 函数与素数分布之间的关系。具体来说,黎曼-底格尔公式可以写成以下形式: $$\pi(x)=\text{li}(x)+O\left(\frac{x}{\ln x}\right)$$ 其中,$\text{li}(x)$ 是对数积分函数,$O\left(\frac{x}{\ln x}\right)$ 是渐进符号,表示当 $x$ 趋近于正无穷时,剩余的误差可以被一个与 $\frac{x}{\ln x}$ 同阶的函数所控制。 我们可以对黎曼-底格尔公式进行微调,得到: $$\psi(x)=\text{li}(x)-\sum_{p}\text{li}(x^{1/p})-\ln 2-\frac{1}{2}\ln(1-x^{-2})+O\left(\frac{x}{\ln x}\right)$$ 其中,$p$ 是素数。这个公式的证明可以参考数论中的相关文献。 接下来,我们证明当 $x$ 趋近于正无穷时,$\psi(x)$ 与素数的个数 $\pi(x)$ 之间的关系是: $$\psi(x)\sim x\ \text{as}\ x\rightarrow\infty$$ 我们可以先证明当 $x$ 趋近于正无穷时,$\text{li}(x)$ 与 $x$ 的差距是比较小的。具体来说,根据定义,$\text{li}(x)$ 可以写成以下积分的形式: $$\text{li}(x)=\int_{2}^{x}\frac{\mathrm{d}t}{\ln t}$$ 通过分部积分,可以得到: $$\text{li}(x)=\frac{x}{\ln x}-\int_{2}^{x}\frac{\mathrm{d}t}{\ln^2 t}+\frac{2}{\ln 2}$$ 因此,当 $x$ 趋近于正无穷时,$\text{li}(x)$ 与 $x$ 的差距是 $O\left(\frac{x}{\ln x}\right)$ 级别的。 接下来,我们证明当 $x$ 趋近于正无穷时,$\sum_{p}\text{li}(x^{1/p})$ 与 $x$ 的差距也是比较小的。具体来说,我们可以写出: $$\sum_{p}\text{li}(x^{1/p})\leq\sum_{n}\text{li}(x^{1/n})=\sum_{n}\int_{2}^{x^{1/n}}\frac{\mathrm{d}t}{\ln t}=\sum_{n}\frac{x^{1/n}}{n\ln x}=O\left(\frac{x}{\ln x}\right)$$ 其中,第一个等式是因为 $\text{li}(x^{1/n})$ 可以看成是 $\text{li}(y)$,其中 $y$ 是满足 $y^n=x$ 的最小整数;第二个等式是通过换元积分得到的;第三个等式是通过级数展开得到的。 因此,当 $x$ 趋近于正无穷时,$\psi(x)$ 与 $x$ 的差距是 $O\left(\frac{x}{\ln x}\right)$ 级别的。这意味着,当 $x$ 趋近于正无穷时,$\psi(x)$ 与 $x$ 是同阶的,即: $$\psi(x)\sim x\ \text{as}\ x\rightarrow\infty$$ 因此,我们证明了素数的频率与黎曼 zeta 函数的零点分布相关的结论。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值