<random>
定義許多亂數產生器。
#include <random>
備註
A 亂數產生器是一個物件,會產生假隨機值序列。用來產生平均分佈的方式指定範圍內的值產生器是引擎。引擎可以結合發佈,藉著做為引數傳遞引擎,以累加分配的operator()或使用variate_generator Class,而產生分散的方式所定義的通訊群組的值。
亂數產生器大多屬於其參數自訂產生器的範本。採用型別做為引數的產生器的描述會使用一般樣板參數名稱來描述型別的屬性,顯示可以當做實質引數型別,如下所示:
IntType表示帶正負號或不帶正負號的整數類資料型別。
UIntType表示不帶正負號的整數類資料型別。
RealType表示浮點型別。
引擎是 TR1 類別或樣板類別其執行個體做為來源的平均分佈的最小和最大值之間的隨機數字。可以是一種引擎簡單引擎 或 複合引擎。每個引擎具有下列成員:
typedef numeric-type result_type是由產生器所傳回的型別operator()。
result_type min()傳回由產生器所傳回的最小值operator()。
result_type max()傳回由產生器所傳回的最大值operator()。當result_type是整數類資料型別,不過這實際上傳回 ; 最大值 當result_type是浮點型別,這是大於可以傳回的所有值的最小值。
void seed()種子函式初始化引擎以預設種子值。
template <class InIt> void seed(InIt& first, InIt last)識別值種子函式,植入引擎使用型別的值unsigned long所指半開放序列中[first, last)。如果序列不夠長,無法完全初始化引擎,這項功能存放數值last在first ,並擲回的物件型別的std::invalid_argument。
注意事項
只保留 TR1 相容性的引擎會包含此成員。
result_type operator()()傳回的值會平均分佈的之間min()和max()。
minmax,以及result_type不所述的引擎,請依照下列詳細資料。
從開始 Visual Studio 2010年,除了保持 TR1 相容性的每個引擎還包含下列成員:
執行明確的建構函式引數與result_type x0這樣將會產生一個引擎,彷彿藉由呼叫 seed(x0) 植入。
執行明確的建構函式引數與seed_seq& seq這樣將會產生一個引擎,植入彷彿藉由呼叫seed(seq)。
void seed(result_type x0)識別值種子函式,植入種子值與引擎x0。
void seed(seed_seq& seq)識別值種子函式,植入種子值引擎seq。
void discard(unsigned long long count)實際上會呼叫operator()數次,並捨棄每一個值。
每個引擎有狀態 ,可決定的後續呼叫會產生的值序列operator()。相同型別的兩個物件的狀態可以藉由比較operator==和operator!=。如果比較為相等的兩個狀態,物件就會產生相同的值序列。物件的狀態可以寫入資料流中儲存為 32 位元不帶正負號的值序列,藉由使用operator<<的物件。狀態不會儲存變更。儲存的狀態可以讀取到相同型別的物件,藉由使用operator>>。
A 簡單引擎是一種引擎可直接產生隨機數字。此文件庫會提供一個類別的物件是簡單的引擎。這個類別還可以使用之演算法的實作,提供參數的值執行個體化的四個類別樣板和九個預先定義的那些類別樣板的執行個體。這些類型的物件也是簡單的引擎。
A 複合引擎是一種引擎取得隨機數字從一或多個簡單的引擎,並在產生隨機數字的平均分散的資料流,藉由使用這些值。此文件庫提供兩個複合引擎類別樣板。
A 發佈是 TR1 類別或樣板類別其執行個體轉換成資料流有特定的分配的隨機數字取自引擎的平均分散隨機數字的資料流。每個散發都具有下列成員:
typedef numeric-type input_type是應該傳遞至引擎所傳回的型別operator()。
typedef numeric-type result_type是的型別所傳回累加分配的operator()。
void reset()捨棄任何快取的值,以便下一個要呼叫的結果operator()未相依於從呼叫之前引擎取得的任何值。
template <class Engine> result_type operator()(Engine& eng)傳回的值根據分佈累加分配的定義中,使用eng做為來源平均分散的隨機值及已儲存的參數封裝。
input_typeresult_type,以及reset未在分配,請依照下列的詳細描述。
從 Visual Studio 2010年開始,每個散發也有:
typedef unspecified-type param_type封裝的參數傳遞給 operator () 來產生它的傳回值。
A const param&建構函式初始化參數的預存的封裝從它的引數。
param_type param() const取得參數的預存的封裝。
void param(const param_type&)將參數的預存的封裝設定它的引數。
template <class Engine> result_type operator()(Engine& eng, param_type par0)傳回以配合累加分配的定義中,使用英文做為來源的平均分散的隨機值和參數封裝績效指數par0。
參數套件是儲存散發所需的所有參數的物件。它包含:
typedef distribution-type distribution_type為其分配的類型。
通訊群組的建構函式會列出一或多個使用建構函式相同的參數。
參數存取功能都與相同的通訊群組。
相等和不等比較運算子。
已檢查的版本,而是未檢查的版本,您可以建立文件庫。已檢查的版本會使用類似 c 的巨集assert巨集來測試條件會標示為Precondition中功能的描述。若要使用已檢查的版本,定義的巨集_RNG_CHECK或巨集_DEBUG為非零數值在使用程式庫的所有程式碼中。
類別
會產生具有。 |
|
會產生二項分配。 |
|
會產生 Cauchy 通訊群組。 |
|
會產生卡方分配。 |
|
產生的隨機序列,捨棄其基底引擎所傳回的值。保留 TR1 相容性。 |
|
產生的隨機序列,捨棄其基底引擎所傳回的值。 |
|
會產生一個不連續的整數分配。 |
|
會產生之指數散發。 |
|
會產生極大的值散佈。 |
|
會產生漁人 f 通訊群組。 |
|
會產生伽瑪分配。 |
|
會產生幾何的散發。 |
|
藉由重新封裝從其基底引擎所傳回的值的位元,會產生隨機序列,並指定的位元數。 |
|
使用線性 congruential 演算法來產生隨機序列。保留 TR1 相容性。 |
|
使用線性 congruential 演算法來產生隨機序列。 |
|
產生的記錄檔一般分散。 |
|
使用 Mersenne twister 演算法,會產生的隨機序列。保留 TR1 相容性。 |
|
使用 Mersenne twister 演算法,會產生的隨機序列。 |
|
會產生負二項分配。 |
|
會產生常態累加分配。 |
|
會產生 piecewise 常通訊群組。 |
|
會產生 piecewise 線性分配。 |
|
會產生波氏分配。 |
|
藉由使用外部裝置,會產生的隨機序列。 |
|
存放不帶正負號的整數值,可以提供為隨機數字引擎隨機的種子的向量。 |
|
藉由重新排列其基底引擎所傳回的值,會產生的隨機序列。 |
|
會產生一個學生 t 分配。 |
|
攜帶演算法使用 [減去] 指令,會產生的隨機序列。保留 TR1 相容性。 |
|
會產生的隨機序列,使用浮點減去攜帶演算法。保留 TR1 相容性。 |
|
攜帶演算法使用 [減去] 指令,會產生的隨機序列。 |
|
會產生統一的整數通訊群組。保留 TR1 相容性。 |
|
會產生統一的整數通訊群組。 |
|
產生的浮點數的均等分配。保留 TR1 相容性。 |
|
產生的浮點數的均等分配。 |
|
引擎和通訊群組,會換行。 |
|
會產生 Weibull 通訊群組。 |
|
會產生合併的通訊群組。 |
Typedef
型別定義為預設的引擎。 |
|
型別定義為隨機播放順序引擎。 |
|
型別定義為線性 congruential 引擎。 |
|
型別定義為線性 congruential 引擎。 |
|
型別定義為 Mersenne 的 twister 引擎。 |
|
型別定義為 Mersenne 的 twister 引擎。 |
|
浮點型別定義減去攜帶引擎。 |
|
型別定義,如 [減去],以執行引擎。 |
|
浮點型別定義減去攜帶引擎。 |
|
型別定義,如 [減去],以執行引擎。 |
|
浮點型別定義減去攜帶引擎。 |
|
型別定義為捨棄區塊引擎。 |
|
型別定義,如 [減去],以執行引擎。 |
|
型別定義為捨棄區塊引擎。 |
|
型別定義,如 [減去],以執行引擎。 |
|
浮點型別定義減去攜帶引擎。 |
運算子
測試運算子左邊的引擎等於右邊的引擎。 |
|
如果運算子左邊的引擎不等於右邊發動機的測試。 |
|
寫入資料流中的狀態資訊。 |
|
從資料流擷取狀態資訊。 |
功能
傳回一連串隨機浮點值。 |