#include<iostream>
#include<complex>
#include<cstdlib>
using namespace std;
bool is_prime(long p)
{
if( p<2 ) return false;
for(int i=2; i*i<=p; i++)
if ( p%i==0 )
return false;
return true;
}
bool is_4n_plus_3( long a ) { return a%4 == 3 ; }
bool is_gausian_prime( std::complex<long> z ) // a + bi
{
const long a = std::abs( z.real() ) ;
const long b = std::abs( z.imag() ) ;
if( a == 0 ) return is_prime(b) && is_4n_plus_3(b) ;
else if( b == 0 ) return is_prime(a) && is_4n_plus_3(a) ;
else return is_prime( a*a + b*b ) ;
}
/*
自然数集与整数集一一对应:当n为偶数时,对应到n/2; n为奇数时对应到1-(n+1)/2
0,1,-1,……
有限多个可数集的笛卡尔积是可数的。
Z[i]可数:按范数升序和幅角主值升序排列
0,1,i,-1,-i,1+i,-1+i,-1-i,1-i,……
高斯整數和普通整數相像,也是惟一分解 (Unique Factorization) 的。除去因子的次序、單位 + 1、 - 1 、 + i 、 - i 及相伴元以外的分解是惟一的。在高斯整數的世界中,型如 4k-1 的素數 (如 3、7、11、19、23、......) 仍為素數,但其他的則可進一步分解成其他高斯素數:
2 = (1+i) (1-i) 5 = (2+i) (2-i) 13 = (2+3i) (2-3i)
17 = (4+i) (4-i) 29 = (5+2i) (5-2i) 37 = (6+i) (6-i)
現在我們知道在實軸 (Real Axis) 及虛軸 (Imaginary Axis) 上存在無限多個高斯素數,因為虛軸上的高斯素數不過是實軸的高斯素數的相伴元。但在複平面 (Complex Plane) 上別的直線又如何呢?例如所有型如 (1 + ki) 的高斯素數是否均存有無限多個呢?仍是存疑。
某些素数并非高斯素数,如2=(1+i)(1-i)及5=(2+i)(2-i)。
4除余3的素数都是高斯素数,4除余1者则否,因为后者能表示成两个平方数之和:
p=a^2+b^2=(a+bi)(a-bi)
若某个高斯整数的范数是素数,该高斯整数是高斯素数。
A complex number a + bj where a and b are integers is a Gaussian prime if the factors are 1, -1, -a - bj and a + bj only.
The following are Gaussian primes: 1 + j, 1 - j, 1 + 2j, 1 - 2j, 3 and 7.
The Gaussian prime factors of 5 are:
1 + 2j and 1 - 2j, or
2 + j and 2 - j, or
-1 - 2j and -1 + 2j, or
-2 - j and -2 + j.
求证范数小于100,1/4正平面(0<=θ<π/2)上所有“高斯素数”
1+1I 1+2I 2+1I 3 2+3I 3+2I 1+4I 4+1I 2+5I 5+2I 1+6I 6+1I
4+5I 5+4I 7 2+7I 7+2I 5+6I 6+5I 3+8I 8+3I 5+8I 8+5I 4+9I 9+4I
高斯素数是指除了单位{1,-1,i,-i}及其自身与单位的乘积,不能被其他高斯整数除尽。
找高斯素数我觉得也不很难,只要得出正平面(0<=θ<π/2)上的高斯素数,然后乘上单位
{-1,i,-i}就能得出其他三个平面上的高斯素数。可以看出高斯素数是关于原点对称的。
*/
class gint
{
public:
gint(long a,long b)
{
m_a=a;
m_b=b;
}
static bool IsPrime(gint N)
{
return is_gausian_prime(complex<long>(N.m_a,N.m_b));
}
friend ostream& operator<< (ostream& os,gint& N);
public:
long m_a;
long m_b;
};
ostream& operator<< (ostream& os,gint& N)
{
string strDes=(gint::IsPrime(N)?"是高斯素数":"不是高斯素数");
if(N.m_a!=0 && N.m_b>0)
cout<<N.m_a<<"+"<<N.m_b<<"i"<<strDes;
if(N.m_a!=0 && N.m_b<0)
cout<<N.m_a<<N.m_b<<"i"<<strDes;
if(/*N.m_a!=0 && */N.m_b==0)
cout<<N.m_a<<strDes;
if(N.m_a==0 && N.m_b!=0)
cout<<N.m_b<<"i"<<strDes;
return os;
}
unsigned int Primes[]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,
107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,
337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,
593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,
857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997};
int main(void)
{
for(int i=0;i<sizeof(Primes)/sizeof(unsigned int);i++)
cout<<gint(Primes[i],0)<<endl;
cout<<gint(1,0)<<endl;
cout<<gint(-1,0)<<endl;
cout<<gint(0,1)<<endl;
cout<<gint(0,-1)<<endl;
cout<<gint(1,1)<<endl;
cout<<gint(1,-1)<<endl;
cout<<gint(4,3)<<endl;
cout<<gint(5,4)<<endl;
//cout<<int_max()(3,4)<<endl;
cin.get();
return 0;
}
/*
前20以内+8
20~60 +9
60~100 +8
100~140 +9
140~180 +8
180~220 +9
=>第100个质数为449【实际上Primes[99]=541】
1000以内有质数216个【实际上有168个】
质概率P(n)=1.0625/5(n->∞)
*/
#include "stdafx.h"
#include<vector>
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
unsigned int Primes[]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,
107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,
337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,
593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,
857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997};
//unsigned int Primes[]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107
//,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223
//,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337
//,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457
//,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593
//,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719
//,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857
//,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997};
namespace math
{
typedef unsigned long DWORD;
//函数decomp_integer对n分解素因数,分解后的素数存入facArr数组,并返回因子的个数
int decomp_integer( DWORD n, DWORD facArr[])
{
DWORD fac; //n的可能的一个因子
int count;
if (n<4) //4以内的数,不需要分解
{
facArr[0]=n; return 1;
}
count=0;
//下面的while循环为2试出n,直到2不是n的因子为止
while ( (n & 1)==0) // 这里判断偶数用 (n &1)==0,这比(n % 2)==0更快
{
facArr[count++]=2; n/=2;
}
fac=3; //用3到sqrt(n)之间的奇数试除
while (fac*fac<=n) // fac*fac <= n
{
while (n % fac==0)
{
facArr[count++]=fac;
n /= fac;
}
fac+=2;
}
if (n==1)
return count;
facArr[count++]=n;
return count;
}
void UFD(unsigned int N,vector<unsigned int> &vecMP,vector<unsigned int> &vecP,vector<unsigned int> &vecA)
{
DWORD facArray[32];
int count=decomp_integer(N,facArray);
for(int i=0;i<count;i++)
vecMP.push_back(facArray[i]);
vecP.insert(vecP.end(),vecMP.begin(), vecMP.end());
vecP.erase(unique(vecP.begin(),vecP.end()),vecP.end());
vecA.resize(vecP.size());
for(int i=0;i<vecP.size();i++)
{
vecA[i]=std::count(vecMP.begin(), vecMP.end(),vecP[i]);
}
}
/*
EulerPhi(1)=1
EulerPhi(2)=1
EulerPhi(3)=2
EulerPhi(4)=2
EulerPhi(5)=4
EulerPhi(6)=2
EulerPhi(7)=6
EulerPhi(8)=4
EulerPhi(9)=6
EulerPhi(10)=4
EulerPhi(11)=10
EulerPhi(12)=4
*/
/*
定义:给定正整数M,不大于M并与M互素的正整数的个数记作φ(M),称φ(M)为欧拉函数。
φ(1)=1,φ(2)=1,φ(3)=2,φ(p)=p-1(p设为素数)
M=12=2^2?3,则φ(M)=12(1-1/2)(1-1/3)=4。
若a和b是任意两个互素的正整数,则φ(ab)=φ(a)?φ(b)。
*/
unsigned int EulerPhi(unsigned int N)
{
if(N==1)
return 1;
vector<unsigned int> vecMP,vecP,vecA;
math::UFD(N,vecMP,vecP,vecA);
unsigned int ret=N;
for(int i=0;i<vecP.size();i++)
{
ret=ret*(vecP[i]-1)/vecP[i];
}
return ret;
}
}
bool IsPrime(unsigned int N)
{
for(int i=2;i<=sqrt((float)N);i++)
if(N%i==0)
return false;
//else
// continue;
return true;
}
int main(void)
{
//for(int i=2;i<50000;i++)
// if(IsPrime(i))
// printf("%d,",i);
//printf("%d\n",sizeof(Primes)/sizeof(unsigned int));
//printf("Primes[99]=%d\n",Primes[99]);
unsigned int N=300;//72;
vector<unsigned int> vecMP,vecP,vecA;
math::UFD(N,vecMP,vecP,vecA);
system("pause");
return 0;
}
按定义计算N次剩余符号(N=2,3,4)
问题1:对于有理整数、高斯整数、爱森斯坦整数,N(p)=?
问题2:jacobi4(3,7)=-1<=>x^4=3(mod7)在Z上无解时,J4(3,7)是-1,i,-i中哪一个?
对任意的(α,π)=1,有α^(φ(π))≡1(mod π),
当π是奇素数时4|φ(π),
所以,(α^(φ(π)/4-1)-1)(α^(φ(π)/4-1)-i)(α^(φ(π)/4-1)+1)(α^(φ(π)/4-1)+i)≡0(mod π)。
进而推出
(α,π)_4≡α^(φ(π)/4)≡1,i,-1,-i(mod π)有且仅有一种情形成立。
由于0,1,i,-1,-i本身对乘法是封闭的,所以Z[i]中的四次剩余特征可直接定义为
(α,π)_4=1,α是模π的四次剩余,即(α,π)_4≡α^(φ(π)/4)≡1(mod π),
(α,π)_4=i,α是模π的四次非剩余,且(α,π)_4≡α^(φ(π)/4)≡i(mod π),
(α,π)_4=-1,α是模π的四次非剩余,且(α,π)_4≡α^(φ(π)/4)≡-1(mod π),
(α,π)_4=-i,α是模π的四次非剩余,且(α,π)_4≡α^(φ(π)/4)≡-i(mod π),
(α,π)_4=0,π|α。
三次、四次互反律
Reciprocity Laws - From Euler to Eisenstein - F. Lemmermeyer (Springer, 2000)
http://www.docin.com/p-102193376.html#documentinfo
10.1.1.192.1338 Reciprocity laws, from Euler to Eisenstein (2007)(数论图书评论)http://www.docin.com/p-478399430.html
互反律:从欧拉到爱森斯坦
三次互反律
对Z中三次剩余的讨论,导致对O_Q(sqrt(-3))=Z[e^(2pii/3)]=Z[-1/2+sqrt(-3)/2]中三次剩余特征的研究。
设p是正有理素数,a∈Z,(a,p)=1,我们考虑Z中的三次同余方程x^3≡a(mod p),x∈Z。----(1)
当p=3或p≡2(mod 3)时,Z中模p的三次剩余特征
(a|p)_(3,Z)≡a^(p-1)/(3,p-1)≡a^(p-1) ≡1(mod p),----(2)
所以,这时方程(1)总有唯一解。
例如:
jacobi3(13,17)=1
jacobi3(5,17)=1
jacobi3(1,5)=1
jacobi3(2,5)=1
jacobi3(3,5)=1
jacobi3(4,5)=1
jacobi3(7,5)=1
jacobi3(8,5)=1
jacobi3(-3,2)=1
jacobi3(-3,5)=1
jacobi3(5,2)=1
jacobi3(5,3)=1
jacobi3(5,11)=1
jacobi3(5,17)=1
jacobi3(-7,2)=1
jacobi3(-7,3)=1
jacobi3(-7,5)=1
jacobi3(-7,11)=1
jacobi3(-7,17)=1
jacobi3(-11,2)=1
jacobi3(-11,3)=1
jacobi3(-11,5)=1
jacobi3(13,2)=1
jacobi3(13,3)=1
jacobi3(13,5)=1
jacobi3(13,11)=1
jacobi3(13,17)=1
jacobi3(17,2)=1
jacobi3(17,3)=1
jacobi3(17,5)=1
jacobi3(17,11)=1
当p≡1(mod 3)时,同余方程(1)有解的充要条件是
(a|p)_(3,Z)≡a^((p-1)/3)≡1(mod p),----(3)
另一方面,p≡1(mod 3)在Z[-1/2+sqrt(-3)/2]中是分裂的。
同余方程(1)和Z[-1/2+sqrt(-3)/2]中的同余方程χ^3≡a(mod π_0),x∈Z[-1/2+sqrt(-3)/2],同时有解或无解。这样,当p≡1(mod 3)时,Z中模p的三次剩余特征就归结为讨论Z[-1/2+sqrt(-3)/2]中的三次剩余特征。
例如:
jacobi3(-3,7)=-1
jacobi3(-3,11)=1
jacobi3(-3,13)=-1
jacobi3(-3,17)=1
jacobi3(5,7)=-1
jacobi3(5,13)=1
jacobi3(-7,13)=-1
jacobi3(-11,7)=-1
jacobi3(-11,13)=-1
jacobi3(-11,17)=1
jacobi3(13,7)=1
jacobi3(17,7)=-1
jacobi3(17,13)=-1
四次互反律
1825年,高斯研究了有理整数Z中的四次剩余问题。设p∈N是有理素数,a∈Z,p!|a。如果同余方程x^4≡a(mod p),x∈Z,----(1)有解,就称a是模p的四次剩余;如果无解,就称a是模p的四次非剩余。p=2的情形是显然的,所以下面假定p>=3。
a是模p的四次剩余的充要条件是四次剩余特征
(a|p)_(4,Z)≡a^((p-1)/(4,p-1))≡1(mod p)。----(2)
当p≡3(mod 4)时显有(a|p)_(4,Z)≡(a|p)(mod p)。----(3)
----四次剩余特征和二次剩余特征的联系(20140429举例)
所以,a是模p的四次剩余的充要条件是它是模p的二次剩余。
例如:
jacobi4(-3,7)=1=jacobi(-3,7)=1
jacobi4(-3,11)=-1=jacobi(-3,11)=-1
jacobi4(5,11)=1=jacobi(5,11)=1
jacobi(5,3)=-1=jacobi4(5,3)=-1
jacobi(5,7)=-1=jacobi4(5,7)=-1
当p≡1(mod 4)时, (a|p)_(4,Z)≡a^((p-1)/4)(mod p)。----(4)
所以有,
[(a|p)_(4,Z)]^2≡(a|p) ≡±1(mod p)。----(5)
当a是模p的四次剩余时一定也是二次剩余,当a是模p的二次非剩余时,一定也是四次非剩余。但当a是模p的二次剩余时,即a^((p-1)/2)≡1(mod p)----(6)时,a不一定是四次剩余。
例如:
jacobi4(1,5)=1=>jacobi(1,5)=1
jacobi4(13,17)=1=>jacobi(13,17)=1
jacobi(5,17)=-1=>jacobi4(5,17)=-1
jacobi(-3,5)=-1=>jacobi4(-3,5)=-1
jacobi(-3,17)=-1=>jacobi4(-3,17)=-1
jacobi(5,17)=-1=>jacobi4(5,17)=-1
jacobi(-3,13)=1时,jacobi4(-3,13)=-1
jacobi(-11,5)=1时,jacobi4(-11,5)=-1
jacobi(4,5)=1时,jacobi4(4,5)=-1
jacobi(1,5)=1时,jacobi4(1,5)=1
jacobi(13,17)=1时,jacobi4(13,17)=1
双二次互反律的特殊情形——
1.高斯素数π,σ都是4n+3型的有理素数p,q∈{3,7,11,……}
N(π)=p^2
N(σ)=q^2
[(p^2-1)/4][(q^2-1)/4]=[(4n+4)(4n+2)/4][(4m+4)(4m+2)/4]=(n+1)(m+1)(4n+2)(4m+2)∈2Z
(π/σ)_4(σ/π)_4=(-1)^[(p^2-1)/4][(q^2-1)/4]=1
例如:
(有问题:jacobi4(3,7)=-1<=>jacobi4(7,3)=1
jacobi4(3,11)=1<=>jacobi4(11,3)=-1
jacobi4(7,11)=-1<=>jacobi4(11,7)=1)
2.高斯素数π,σ都是-4n-3型的本原奇素数p,q∈{-3,-7,-11,……}
N(π)=p^2
N(σ)=q^2
[(p^2-1)/4][(q^2-1)/4]=[(-4n-2)(-4n-4)/4][(-4m-4)(-4m-2)/4]=(n+1)(m+1)(4n+2)(4m+2)∈2Z
(π/σ)_4(σ/π)_4=(-1)^[(p^2-1)/4][(q^2-1)/4]=1
例如:
(jacobi4(-3,-7)=-1<=>jacobi4(-7,-3)=-1
J4(-3,-7)、J4(-7,-3)=i或-i中的哪一个?)
二次互反律:对奇素数p,q,(p/q)*(q/p)=(-1)^((p-1)/2*(q-1)/2)
(p/q)*(q/p)=(-1)^((p-1)/2*(q-1)/2)=(-1)^[(4n+2)(4m+2)/4]=(-1)^(4nm+1+2m+2n)=-1
例如:
jacobi(3,7)=-1<=>jacobi(7,3)=1
jacobi(3,11)=1<=>jacobi(11,3)=-1
jacobi(7,11)=-1<=>jacobi(11,7)=1
对奇素数-p,-q,
(p/q)*(q/p)=(-1)^((p-1)/2*(q-1)/2)=(-1)^[(-4n-4)(-4m-4)/4]=1
例如:
jacobi(-3,-7)=-1<=>jacobi(-7,-3)=-1
/*
> jacobi(13,17)
1
> jacobi(5,17)
-1
> jacobi(1,5)
1
> jacobi(2,5)
-1
> jacobi(3,5)
-1
> jacobi(4,5)
1
> jacobi(7,5)
-1
> jacobi(8,5)
-1
c:\>javac jacobiN.java
c:\>java jacobiN
jacobi(13,17)=1
jacobi(5,17)=-1
jacobi(1,5)=1
jacobi(2,5)=-1
jacobi(3,5)=-1
jacobi(4,5)=1
jacobi(7,5)=-1
jacobi(8,5)=-1
jacobi4(13,17)=1
jacobi4(5,17)=-1
jacobi4(1,5)=1
jacobi4(2,5)=-1
jacobi4(3,5)=-1
jacobi4(4,5)=-1
jacobi4(7,5)=-1
jacobi4(8,5)=-1
jacobi3(13,17)=1
jacobi3(5,17)=1
jacobi3(1,5)=1
jacobi3(2,5)=1
jacobi3(3,5)=1
jacobi3(4,5)=1
jacobi3(7,5)=1
jacobi3(8,5)=1
*/
public class jacobiN{
/*
按定义计算二次剩余和二次非剩余
x=8,(13/17)=1
x=无解,(5/17)=-1
*/
public static int Legendre(int a,int p)
{
if(a%p==0)
return 0;//a是p的倍数
for(int i=1;i<p;i++)
{
if((i*i-a)%p==0)
{
return 1;//a是p的二次剩余
}
}
return -1;//a是p的二次非剩余
}
public static int Gauss(int a,int p)
{
if(a%p==0)
return 0;//a是p的倍数
for(int i=1;i<p;i++)
{
if((i*i*i*i-a)%p==0)
{
return 1;//a是p的四次剩余
}
}
return -1;//a是p的四次非剩余
}
public static int Eisenstein(int a,int p)
{
if(a%p==0)
return 0;//a是p的倍数
for(int i=1;i<p;i++)
{
if((i*i*i-a)%p==0)
{
return 1;//a是p的三次剩余
}
}
return -1;//a是p的三次非剩余
}
public static void main(String args[]){
jacobiN j1=new jacobiN();
{
int a[]={13,5};
int p=17;
for(int i=0;i<2;i++)
{
int ret=Legendre(a[i],p);
System.out.printf("jacobi(%d,%d)=%d\n",a[i],p,ret);
}
}
{
int a[]={1,2,3,4,7,8};
int p=5;
for(int i=0;i<6;i++)
{
int ret=Legendre(a[i],p);
System.out.printf("jacobi(%d,%d)=%d\n",a[i],p,ret);
}
}
{
int a[]={13,5};
int p=17;
for(int i=0;i<2;i++)
{
int ret=Gauss(a[i],p);
System.out.printf("jacobi4(%d,%d)=%d\n",a[i],p,ret);
}
}
{
int a[]={1,2,3,4,7,8};
int p=5;
for(int i=0;i<6;i++)
{
int ret=Gauss(a[i],p);
System.out.printf("jacobi4(%d,%d)=%d\n",a[i],p,ret);
}
}
{
int a[]={13,5};
int p=17;
for(int i=0;i<2;i++)
{
int ret=Eisenstein(a[i],p);
System.out.printf("jacobi3(%d,%d)=%d\n",a[i],p,ret);
}
}
{
int a[]={1,2,3,4,7,8};
int p[]={5};
for(int i=0;i<6;i++)
for(int j=0;j<1;j++)
{
int ret=Eisenstein(a[i],p[j]);
System.out.printf("jacobi3(%d,%d)=%d\n",a[i],p[j],ret);
}
}
}
}
高斯和及欧拉数 http://www.docin.com/p-276938834.html
论文摘要:本文研究了广义k次高斯和的均值及欧拉数的一些同余式问题。通过研究广义二次高斯和的四次均值,得到与Weil估计相联系的一个有趣的等式。根据这一恒等式,我们解决了广义二次高斯和的高次均值方面的一个公开问题。利用剩余系和特征和的性质,我们还给出了广义k次高斯和的一些准确的均值公式,从而部分解决了广义k次高斯和高次均值方面的一个公开问题。最后,利用欧拉数、伯努利数及其多项式之间的关系和性质,我们对欧拉数的两个猜想也作了深入研究,建立了欧拉数及伯努利数模一个奇素数幂的一些精确的同余式。从而对目前国内外在这方面所得到的一些结果给出了一个更为简单的证明。
关键词:高斯和,均值,Weil估计,欧拉数,伯努利数,同余
目录
引言
1高斯和
1.1特征的定义及基本性质
1.2高斯和的定义及基本性质
2广义k次高斯和的均值问题
2.1引言
2.2广义二次高斯和的均值
2.3广义k次高斯和的均值
2.4待解决的问题
3欧拉数的同余式问题
3.1引言
3.2欧拉数的两个猜想
3.3欧拉数的一些有趣的同余式
3.4待解决的问题
引言
高斯和除了在证明著名的二次互反律、三次互反律、四次互反律等方面是有用的工具外,在代数编码、椭圆曲线等应用方面也发挥着重要的作用(见文[2]和[49])。欧拉数及相关的伯努利数出现在数学的许多不同分支中,在数论中尤为重要,它们与数论中的p-adic分析理论,Dirichlet L-函数理论和分圆域上的理想类群理论紧密联系在一起(见文[27]和[34]和[10])。本文从张文鹏教授提出的广义k次高斯和高次均值方面的两个公开问题及加拿大数学家R.K.Guy在文[12]的问题B45中对欧拉数提出的两个猜想出发,得到本文后两章所包含的广义k次高斯和的高次均值公式和欧拉数、伯努利数模奇素数幂的一些精确的同余式。
第一章 高斯和
1.1特征的定义及基本性质
如果有限域F_p上的一个复值函数χ满足:
……则称χ为有限域F_p上的乘法特征。
从乘法特征的定义可知,勒让德符号(a|p)是有限域F_p上的一个乘法特征。
另一个特征的例子是平凡特征,即对所有a∈F_p^*,χ(a)=1。这个特征叫做乘法主特征,记为χ_0。
显然,F_p上的乘法特征把乘群的各类间的乘法运算,具体表示为复数间的乘法运算,这给我们研究问题时带来了方便。为了便于讨论,我们把有限域F_p上的乘法特征的定义域加以扩展为:如果χ=χ_0是乘法主特征,那么χ(0)=1;如果χ≠χ_0,那么χ(0)=0。
定义1.1.2设m是正整数,……
以这种方式定义的χ叫做模m的Dirichlet特征。
由以上定义可知,勒让德符号(a|p)是模p的一个Dirichlet特征。为研究Dirichlet特征的性质,我们考虑一个更一般的问题。
定义1.1.3设G是一个群,如果G上的一个复值函数f满足:
……
则称f为G的一个特征。
显然,每一个群G至少有一个特征,它就是在G上取值恒等于1的函数。这个特征称为主特征。下面一个命题告诉我们:如果G是群并且有有限阶n>1,那么它还有另外的特征。
命题1.1.5阶为n的有限Abel群有且仅有n个不同的特征。
现令G是一个阶为n的有限Abel群,G的主特征用f_1表示,其余n-1个特征用f_2,…f_n表示,称为非主特征。
1.2高斯和的定义及基本性质
在给出经典的二次高斯和的定义及基本性质之前,我们先考虑著名的三角和公式。
命题1.2.1设k是正整数,那么
∑[m=0->k-1]e^(2piimn/k)=k(k|n)或0(k!|n)。
定义1.2.1:令p是一个奇素数,ζ=e^(2pii/p)。则g_a=∑[t=0->p-1](t|p)ζ^(at)叫做二次高斯和,其中(t|p)是勒让德符号。
命题1.2.2 g_a=(a|p)g_1。
命题1.2.3 g^2 =((-1)^((p-1)/2)))p。
命题1.2.4
g_1=sqrt(p),p≡1(mod4);
g_1=isqrt(p),p≡3(mod4)。
【
20140512二次高斯和的程序计算数据:
p=3时,g_0=0,g_1=sqrt(3)i,g_2=-sqrt(3)i
g^2=((-1)^1)3=-3
p=5时,g_0=0,g_1=sqrt(5),g_2=-sqrt(5),g_3=-sqrt(5),g_4=sqrt(5)
g^2=((-1)^2)5=5
p=7时,g_0=0,g_1=sqrt(7)i,g_2=sqrt(7)i,g_3=-sqrt(7)i,g_4=sqrt(7)i,g_5=-sqrt(7)i,g_6=-sqrt(7)i
g^2=((-1)^3)7=-7
p=11时,g_0=0,g_1=sqrt(11)i,g_2=-sqrt(11)i,g_3=sqrt(11)i,g_4=sqrt(11)i,g_5=sqrt(11)i,g_6=-sqrt(11)i,g_7=-sqrt(11)i,g_8=-sqrt(11)i,
g_9=sqrt(11)i,g_10=-sqrt(11)i
g^2=((-1)^5)11=-11
p=13时,g_0=0,g_1=sqrt(13)
g^2=((-1)^6)13=13
p=17时,g_0=0,g_1=sqrt(17),g_5=-sqrt(17),g_13=sqrt(17)
(5/17)=-1
(13/17)=1
g^2=((-1)^8)17=17
#include <iostream>
#include <complex>
using namespace std;