Pseudorandom Number Generator
Description
偽隨機(jī)數(shù)生成器 (Pseudorandom Number Generator, PRNG) 是用于生成接近于絕對(duì)隨機(jī)數(shù)序列的數(shù)字序列的算法。一般來(lái)說(shuō),偽隨機(jī)數(shù)生成器依賴于一個(gè)初始值,也稱為種子,來(lái)生成對(duì)應(yīng)的偽隨機(jī)數(shù)序列。只要種子確定,使用偽隨機(jī)數(shù)生成器生成的隨機(jī)數(shù)就是完全確定的,因此其生成的隨機(jī)數(shù)序列并不是真正隨機(jī)的。
生成偽隨機(jī)數(shù)的方法非常多,例如,我們可以通過(guò)以下方法得到?[0, p - 1] 范圍內(nèi)偽隨機(jī)整數(shù)。
int seed = 初始種子, a = 初始參數(shù), p = 初始參數(shù);
int generate() {
seed = (seed * seed + a) % p;
return seed;
}
換句話說(shuō),假設(shè)初始參數(shù) seed,?a,?p?給定,我們生成的隨機(jī)數(shù)序列實(shí)際上是
f(seed),f(f(seed)),f(f(f(seed))),?
不過(guò),可以注意到,每次生成的隨機(jī)數(shù)由上一個(gè)隨機(jī)數(shù)唯一確定,經(jīng)過(guò)一定次數(shù)的迭代后,必然會(huì)陷入一個(gè)循環(huán),我們稱這個(gè)循環(huán)的循環(huán)節(jié)為這個(gè)隨機(jī)數(shù)序列的周期。
現(xiàn)在,給定 seed,?a?和?p,你需要計(jì)算使用該方法生成的隨機(jī)數(shù)序列的周期。
Input
輸入共一行,包含三個(gè)整數(shù) seed,?a,?p(0≤seed,a
Output
輸出共一行,包含一個(gè)整數(shù),表示生成的隨機(jī)數(shù)序列的周期。
Sample Input 1?
1 14 514
Sample Output 1
18
Hint
生成的序列的前 30 項(xiàng)為 15, 239, 81, 407, 155, 395, 297, 329, 315, 37, 355, 109, 73, 203, 103, 343, 471, 321, 255, 275, 81, 407, 155, 395, 297,329, 315, 37, 355, 109。
可以看到,從第三個(gè)隨機(jī)數(shù)?8181?開始,之后的序列周期性出現(xiàn),周期為?1818。
先打出來(lái)檢索的代碼,再來(lái)插旗子判斷即可:
#includeusing namespace std;
const int N=10000010;
int aa[N],b[N]={},c[N];
int main()
{
long long seed,a,p;
cin >>seed >>a >>p;
aa[1]=seed;
int cnt=0;
for(int i=1;;i++)
{
seed=(seed*seed+a)%p;
aa[i]=seed;
// aa[i+1]=(aa[i]*aa[i]+a)%p;
b[seed]++;
if(b[seed]==2)
{
cnt=i;
break;
}
// cout<
數(shù)組要開到范圍外,我因?yàn)閿?shù)組不對(duì)wa了12發(fā),一直run time error,麻了,悲
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
當(dāng)前題目:2022浙江工業(yè)大學(xué)程序設(shè)計(jì)迎新賽——決賽J題題解-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://jinyejixie.com/article8/dicgop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站導(dǎo)航、建站公司、面包屑導(dǎo)航、手機(jī)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容