hdu1014 Uniform Generator

来源:互联网 发布:厦门雅迅网络 编辑:程序博客网 时间:2024/05/29 09:08
/*Author:snowflakeTime:2012/5/13Desc:Water...*//*题目的大意:就是给定两个数step, mod然后利用给定的公式求随机数,保证从0到mod减1范围内每一个数都出现一次。这样就均等分布了。就打印Good否则就Bad就是枚举产生随机数,然后排序在比对,注意下输出的格式就OK了。 */#include <iostream>#include <cstdio>#include <algorithm>using namespace std;#define MAX 100000 + 10int random[MAX];int main(){int step, mod;int i;bool flag;while(cin >> step >> mod){flag = true;random[0] = 0;//第一个数字永远是0 for(i = 1; i <= mod - 1; i++){random[i]= (random[i - 1] + step) % mod;}sort(random, random + mod);for(i = 0; i < mod; i++){if(random[i] != i)flag = false;}if(flag)printf("%10d%10d    Good Choice\n\n",step, mod);elseprintf("%10d%10d    Bad Choice\n\n",step, mod);}return 0;}

原创粉丝点击