Uniform Generator
- 题目链接
Uniform Generator
- 题目大意
题目中给了一个计算机做随机数的公式,现在公式中有两个数a,b,现在给你这两个数a,b,问用这两个数能取得0~b-1的随机数吗。
- 题解
这个题就是直接求就好…..但是网上有人说只需要判断gcd(a,b)是否等于1…关于这个求法还不是很懂,自己推也没有推出来,等以后积累多了再回头来看吧。
- 代码
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int step,mod,flag[100000];
int main()
{
while (scanf("%d%d",&step,&mod)!=EOF)
{
memset(flag,0,sizeof(flag));
int seed=0;
while (!flag[seed])
{
flag[seed]=1;
seed=(seed+step)%mod;
}
int f=0;
for (int i=0;i<=mod-1;i++) if (!flag[i]) f=1;
if (f) printf("%10d%10d Bad Choice\n\n",step,mod);
else printf("%10d%10d Good Choice\n\n",step,mod);
}
return 0;
}