公有成員函式
<random>
void discard (unsigned long long z);
Advance internal state (推進內部狀態)
將內部狀態推進z個步長,如同呼叫z次operator(),但在此過程中不生成任何數字。
狀態序列上的效果與應用轉移演算法的步數等於步長進位次數的效果相同。
其中x是當前狀態值,a和c分別是它們各自的類模板引數,m是其各自的類模板引數(如果m大於0),或者numerics_limits<UIntType>::max()加上1否則。
引數
- 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
|
// linear_congruential_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();
std::minstd_rand0 generator (seed); // minstd_rand0 is a standard linear_congruential_engine
std::cout << "Random value: " << generator() << std::endl;
generator.discard(10); // discard 10 values
std::cout << "Random value: " << generator() << std::endl;
return 0;
}
|
可能的輸出
Random value: 1170275710
Random value: 44925998
|