408 - Uniform Generator 、完全剩余系 和 同余的一个性质

#include <iostream> #include <cstdio> using namespace std; int gcd(int a,int b){ //cout<<a<<" "<<b<<endl; if(!b) return a; return gcd(b,a%b); } int main() { freopen("i.txt","r",stdin); int s,m; while(cin>>s>>m){ printf("%10d%10d",s,m); //cout<<s<<" "<<m<<endl; //cout<<gcd(s,m)<<endl; if(gcd(s,m)==1) cout<<" Good Choice"<<endl; else cout<<" Bad Choice"<<endl; cout<<endl; } return 0; }

1.完全剩余系:一个模m完全剩余系是一个整数的集合,使得每个整数恰和此集合中的一个元素模m同余.

2.定理: 若r1,r2……rm是一个模的完全剩余系,且正整数a使得(a,m)=1,即a,m互素,则对于任何整数b,

    a*r1+b,a*r2+b,……,a*rn+b,都是模m的完全剩余系.

证明:

    假设:存在j!=k有a*rj+b≡a*rk+b(mod m),

           则a*rj≡a*rk(mod m).

           因为(a,m)=1,所以rj≡rk(mod m).

           推出j==k,与j!=k矛盾.

  

 

 3.关于这个题,补充一下:其实题目中的那个递推公式的解就是1.当n==1是,s1=STEP%MOD,2.其他sn=(n*STEP)%MOD

 

 

你可能感兴趣的:(408 - Uniform Generator 、完全剩余系 和 同余的一个性质)