公有成员函数
<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
|