UVA - 350 Pseudo-Random Numbers

来源:互联网 发布:明星加入外国国籍 知乎 编辑:程序博客网 时间:2024/05/21 09:31

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19091

给你一个产生随机数的式子,求循环节。

#include<cstdio>#include<cstring>const int maxn = 1000000;int f[maxn],s[maxn];int main(){    //freopen("a.txt","r",stdin);    int a,b,c,d,x,i,j=1;    while(~scanf("%d%d%d%d",&a,&b,&c,&d)&&a+b+c+d)    {        memset(f,0,sizeof(f));        i=1;        x=d;        while(1)        {            x=(a*x+b)%c;            if(f[x]) break;            f[x]=1;s[x]=i++;        }        printf("Case %d: %d\n",j++,i-s[x]);    }    return 0;}


0 0