题目名称 3709. 线性同余发生器
输入输出 LCG.in/out
难度等级 ★★
时间限制 200 ms (0.2 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarop_组撒头屯 于2022-07-09加入
开放分组 全部用户
提交状态
分类标签
扩展欧几里得算法 数学 同余
分享题解
通过:2, 提交:3, 通过率:66.67%
Gravatarop_组撒头屯 100 0.700 s 3.44 MiB C++
Gravatarop_组撒头屯 100 0.710 s 3.44 MiB C++
Gravatarop_组撒头屯 0 1.200 s 3.44 MiB C++
关于 线性同余发生器 的近10条评论(全部评论)

3709. 线性同余发生器

★★   输入文件:LCG.in   输出文件:LCG.out   简单对比
时间限制:0.2 s   内存限制:256 MiB

【题目描述】

线性同余发生器(LCG)是一种伪随机序列生成器算法,能产生具有不连续计算的伪随机序列的分段线性方程。生成器由循环关系定义:

                    

其中,$a,c,m,x_n$均为非负整数,$x_0$被称为“种子”,$∀x_n∈[0,m-1]$。

若对于一个$c$值,存在一个“种子”$x_0$,使得计算出所有的$x_n$都等于$x_0$,则称发生器进入了“黑洞”,$x_0$就称作$c$的“黑洞值”。

例如,当$a=5,m=11,c=4$时,“黑洞值”$x_0=10$,此时所有$x_n$都等于$10$。

现在,告诉你$a$与$m$的值,对于每个$c∈[1,m-1]$,请算出$c$的“黑洞值”的乘积。答案对$10^9+7$取模。

【输入格式】

一行两个正整数,表示$a,m$。

【输出格式】

一个数,表示“黑洞值”的乘积。特殊地,若某个$c$没有“黑洞值”,输出" No black hole! "。

【样例输入】

5 11

【样例输出】

3628800

【样例解释】

对于每个$c∈[1,m-1]$,$c$的“黑洞值”分别为8,5,2,10,7,4,1,9,6,3,乘积为3628800

【数据规模与约定】

保证$m$为质数

$m≤10^7,1<a<m$

【来源】

$rsr$