#P1597. Uniform Generator
Uniform Generator
题目描述
计算机模拟通常需要随机数。生成伪随机数的一种方法是使用以下形式的函数:
seed(x+1) = [ seed(x) + STEP ] % MOD
其中“%”是取模运算符。该函数生成介于 0 和 MOD-1 之间的伪随机数。此类函数的一个问题是它们会反复生成相同的模式。为了最小化这种影响,仔细选择 STEP 和 MOD 的值可以使所有值(包括 0 和 MOD-1)均匀分布。
示例分析:
- 当 STEP=3、MOD=5 时,生成的序列为 0, 3, 1, 4, 2,每个 MOD 次迭代会生成所有可能的值,属于“Good Choice”。
- 当 STEP=15、MOD=20 时,生成的序列为 0, 15, 10, 5(或其他重复序列),无法覆盖所有值,属于“Bad Choice”。
任务:给定 STEP 和 MOD,判断该函数是否能在 MOD 次迭代内生成 0 到 MOD-1 的所有值。若是,输出“Good Choice”,否则输出“Bad Choice”。
输入格式
每行包含两个整数 STEP 和 MOD(1 ≤ STEP, MOD ≤ 100000)。
输出格式
对于每行输入,按以下格式输出:
- STEP 右对齐,占 1-10 列;
- MOD 右对齐,占 11-20 列;
- 判断结果左对齐,从第 25 列开始,取值为“Good Choice”或“Bad Choice”。
每个输出后需换行。
输入输出示例
输入数据 1:
3 5
15 20
63923 99999
输出数据 1:
3 5 Good Choice
15 20 Bad Choice
63923 99999 Good Choice