HDU 1014:Uniform Generator】的更多相关文章

传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1014 Uniform Generator Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 33120    Accepted Submission(s): 13137 Problem Description Computer simulati…
Uniform Generator Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 29336    Accepted Submission(s): 11694 Problem Description Computer simulations often require random numbers. One way to generat…
Uniform Generator Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 24381    Accepted Submission(s): 9642 Problem Description Computer simulations often require random numbers. One way to generat…
Uniform Generator Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 32990    Accepted Submission(s): 13081 Problem Description Computer simulations often require random numbers. One way to generat…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1014 题目意思:给出 STEP 和 MOD,然后根据这个公式:seed(x+1) = [seed(x) + STEP] % MOD,问是否在一个周期里可以产生 0 - mod-1 的数.可以的话输出 "Good Choice", 否则输出 "Bad Choice". 好久以前留下来的问题了,以前觉得题目意思又长,以为是很难的题目......今天看<短码之美>…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1014 解题思路: 1. 把题目意思读懂后,明白会输入两个数,然后根据题中的公式产生一系列伪随机数,看这些数是不是能够包含0~MOD-1.如果产生不了就输出“Good Choice”,否则输出“Bad Choice”. 2. 全部假使x从0开始,设STEP为a,MOD为b.如果说a,b存在倍数关系,即假设最小存在2倍关系,那么就会有b=2a.x初始为0,第一步之后为a,第二步之后为0,之后a.0交替出…
找到规律之后本题就是水题了.只是找规律也不太easy的.证明这个规律成立更加不easy. 本题就是求step和mod假设GCD(最大公约数位1)那么就是Good Choice,否则为Bad Choice 为什么这个结论成立呢? 由于当GCD(step, mod) == 1的时候.那么第一次得到序列:x0, x0 + step, x0 + step-- 那么mod之后,必定下一次反复出现比x0大的数必定是x0+1,为什么呢? 由于(x0 + n*step) % mod. 且不须要考虑x0 % mo…
摘取于http://blog.csdn.net/kenden23/article/details/37519883: 找到规律之后本题就是水题了,不过找规律也不太容易的,证明这个规律成立更加不容易. 本题就是求step和mod如果GCD(最大公约数位1)那么就是Good Choice,否则为Bad Choice 为什么这个结论成立呢? 因为当GCD(step, mod) == 1的时候,那么第一次得到序列:x0, x0 + step, x0 + step…… 那么mod之后,必然下一次重复出现比…
#include<iostream> #include <cstdio> #include <cstring> using namespace std; int main(void) { int s,m,i; /*int seed=0; int a[10005]={0}; //memset(a,0,sizeof(a));*/ while(scanf("%d%d",&s,&m)!=EOF); { int seed=0; int a[10…
http://acm.hdu.edu.cn/showproblem.php?pid=1014 题目的英文实在是太多了 ,搞不懂. 最后才知道是用公式seed(x+1) = [seed(x) + STEP] % MOD 来计算随机数 ,问是否满足随机数. 初级版本: 思路:把所有的用该公式计算出来的数(存在数组中)都遍历出来,然后排序.由于数字是在0 到mod-1 之间,所以数组的下标必然等于数组的值,有一个不等于,就是bad chioce #include <stdio.h> #include…