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