一些数学知识&题

欧几里得算法

费马小定理

当a,p都是是质数时,a^(p-1)=1(mod p)

证明:

举个例子 a=2,p=5;

1,2,3,4 集合(1) {1,2,3,4...,(p-1)}
2,4,6,8 => %5 => 2,4,1,3 集合(2) {1a%p,2a%p,3a%p,4a%p...,(p-1)a%p}

我们发现{1,2,3,4}和{2,4,1,3}只是位置不同,成积相同

怎么个一定乘积相同法?

反证法:

首先(1)一定不会有相同,(2)的证法如下

ai=aj (mod P) => a(i-j)=0 (mod p) => p|a(i-j) 这可能吗?p是质数

证毕

裴属定理

证明:c|ax,c|by,所以c|ax+by,证毕:)

求逆元(老重要了!!!)

  • 扩展欧几里得算法

求的是ax+by=1,中的x

点击查看代码
#include<bits/stdc++.h>
using namespace std;
int n,m;
int exgcd(int a,int b,int &x,int &y){
	if(b==0){
		x=1;
		y=0;
		return a;
	}
	int d=exgcd(b,a%b,x,y);
	int z=x;
	x=y;
	y=(z-a/b*y);
	return d;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		int x=0,y=0;
		exgcd(i,m,x,y);////
		x = (x + m) % m;
		cout<<x<<endl;//x表示i在模m意义下的逆元
	}
	return 0;
}
  • 线性方法

求i的逆元

点击查看代码
inv[1] = 1;
for(int i = 1; i < p; ++ i)
    inv[i] = (p - p / i) * inv[p % i] % p;//这里有个问题困扰了我很久,为什么(p-p/i)=-(p/i) ? 因为 -(p/i)%p=p-(p/i) 不知道的去查

对与中国剩余定理

-------------------------------------------------------我是一条线---------------------------------------------------------&

小试魔刀

posted @   zjr20120321  阅读(6)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示