公有成員函式
<random>

std::linear_congruential_engine::discard

void discard (unsigned long long z);
Advance internal state (推進內部狀態)
將內部狀態推進z個步長,如同呼叫zoperator(),但在此過程中不生成任何數字。

狀態序列上的效果與應用轉移演算法的步數等於步長進位次數的效果相同。



其中x是當前狀態值,ac分別是它們各自的類模板引數,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


複雜度

線性複雜度為z.

另見