時間限制: 1 sec 記憶體限制: 128 mb
提交: 425 解決: 136
[提交] [狀態] [討論版] [命題人:外部匯入]
題目描述
隨機數是生成隨機演算法的基礎,小l準備使用線性同餘法(linear congruential method)來生成乙個隨機數列,這種方法需要設定四個非負整數引數m, a, c, x0按照下面的公式生成出一系列隨機數 : xn+1 = (a * xn + c) mod m ,小l現在想知道這個數列第n個數是多少,由於他只需要生成小於g的隨機數,所以你只需要告訴他xn mod g的結果即可。
輸入輸入一行6個整數,分別表示m, a, c, x0, n, g 。(n ≤ 106,1 ≤ m, a, c, x0 , g ≤231 − 1)
輸出一行乙個整數表示xn
樣例輸入 copy
233 3 3 3 3 333
樣例輸出 copy
120暴力沒寫出來,換了矩陣快速冪,一直忽略了n為1的情況
ac**:
#include#include#includeusing namespace std;
struct node;
int f=3;
long long int mod;
node a,b,c;
int m,aa,cc,g,n,x;
node mul(node a,node b)
}return ans;}
node ksm(node a,int b)
b>>=1;
a=mul(a,a);
}return res;
}int main()
// cout/ }
// for(int i=1;i<=f;i++)
// cout/ }
// for(int i=1;i<=f;i++)
// cout/ }
c=mul(c,a);
// for(int i=1;i<=f;i++)
// cout/ }
cout<}
BZOJ2875 隨機數生成器(矩陣快速冪)
棟棟最近迷上了隨機演算法,而隨機數是生成隨機演算法的基礎。棟棟準備使用線性同餘法 linear congruential method 來生成乙個隨機數列,這種方法需要設定四個非負整數引數m,a,c,x 0 按照下面的公式生成出一系列隨機數 x n 1 ax n c mo dm其中mod m表示前面...
NOI2012 隨機數生成器 矩陣快速冪
棟棟最近迷上了隨機演算法,而隨機數是生成隨機演算法的基礎。棟棟準備使用線性同餘法 linear congruential method 來生成乙個隨機數列,這種方法需要設定四個非負整數引數 m,a,c,x 0 按照下面的公式生成出一系列隨機數 x ax n c bmod m 其中 mod m 表示前...
隨機數矩陣乘法
最近有同事在討論矩陣儲存和乘法問題,一時興起就寫了演算法.要求 矩陣a 矩陣b 要求a 和 b是由隨機數組成,並且a是按行優先儲存的,而b是按列優先儲存的,並輸出a b的結果,可重複計算.考慮了一下,矩陣儲存可以用二維陣列來儲存,但是根據要求矩陣需動態儲存,所以採用指標的指標來儲存和操作矩陣.以下為...