您的位置:首页 > 其它

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

2011-03-06 16:12 281 查看
#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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: