公共成员函数
<random>
void discard (unsigned long long z);
Advance internal state (推进内部状态)
将内部状态推进 z 个刻度,如同调用 operator() z 次,但在此过程中不生成任何数字。
状态序列的效果与应用转换算法的次数与后续元素推进的刻度数相同,每次用从base引擎获得的新值替换内部表的元素。
参数
- 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
|
// shuffle_order_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();
// knuth_b is a standard shuffle_order_engine type:
std::knuth_b generator (seed);
std::cout << "Random value: " << generator() << std::endl;
generator.discard(generator.table_size);
std::cout << "Random value: " << generator() << std::endl;
return 0;
}
|
可能的输出
Random value: 484547135
Random value: 1532202078
|
复杂度
Linear in z. (与z呈线性关系。)