公有成員函式
<random>
void discard (unsigned long long z);
Advance internal state (推進內部狀態)
將內部狀態推進z個刻度,如同呼叫z次 operator() 一樣,但不會生成任何數字。
對狀態序列的影響與在後續元素上應用轉換演算法的次數相同。
引數
- z
- Number of equivalent advances. (等效推進的次數。)
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
// discard_block_engine::discard
#include <iostream>
#include <chrono>
#include <random>
int main ()
{
// obtain a seed from the system clock:
unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
// ranlux24 is a standard instantitation of discard_block_engine:
std::ranlux24 generator (seed);
std::cout << "Random value: " << generator() << std::endl;
generator.discard(generator.used_block); // advance an entire block
std::cout << "Random value: " << generator() << std::endl;
return 0;
}
|
可能的輸出
Random value: 6747515
Random value: 8481690
|
複雜度
Linear in z. (與z呈線性關係。)