boost庫 隨機數 random庫

2021-10-22 07:20:51 字數 2054 閱讀 6941

#include

提供偽隨機數的實現,提供隨機數發生器、分布等很多有用的數學、統計學相關概念

random庫提供了30多個隨機數發生器,使用的演算法包括線性同餘、逆同餘、mersennetwister(馬特賽特旋轉)、fibonacci、ranlux及它們的混合。

1、乙個隨機數種子——seed(),設定種子值

2、min()和max()獲得隨機數的最大最小值

3、operator()產生乙個隨機數

4、generate()填充乙個迭代器區間

5、discard()從序列中丟棄一些數

6、隨機數發生器都允許拷貝、賦值,拷貝後的副本完全複製了原始隨機數發生器的狀態,可以產生相同的隨機數序列,用於再現測試。

7、偽隨機數發生器在程式中應盡量少發生構造操作——構造成本昂貴(時間和空間);構造發生器提供的種子一般是使用系統時間,如果兩個發生器構造的時間間隔很短,則可能種子值相同,從而得到兩個行為相同的偽隨機數發生器。

需要具有特定分布的隨機數。

隨機數分布器——把隨機數發生器產生的整數域隨機對映到另一種分布。我在想它是不是把matlab的都搬過來了...

bernoulli_distribution:伯努利分布

beta_distribution:貝塔分布

binomial_distribution:二項分布

cauchy_distribution:柯西(洛倫茲)分布

chi_squared_distribution:x方分布

discrete_distribution:離散分布

exponential_distribution:指數分布

extreme_value_distribution:極值分布

fisher_f_distribution:費雪f分布

gamma_distribution:伽馬分布

geometric_distribution:幾何分布

hyperexponential_distribution:超指數分布

laplace_distribution:拉普拉斯分布

lognormal_distribution:對數正態分佈

nagative_binomial_distribution:負二項分布

non_central-chi_squared_distribution:非中心x方分布

normal_distribution:正態分佈

piecewise_constant_distribution:分段常數分布

piecewise_linear_distribution:分段線性分布

student_t_distribution:學生t分布

********_distribution:三角分布

uniform_01:區間[0, 1]上的實數連續均勻分布

uniform_int_distribution:整數域上的均勻分布

uniform_smallint:在小整數域內的均勻分布

uniform_on_sphere:球面的均勻分布

uniform_real_distribution:區間[a, b)上的實數連續均勻分布

weibull_distribution:韋伯分布

模板類variate_generator變數發生器,組合隨機數發生器和分布器,使產生隨機數更加容易便捷。

templateclass variate_generator

;

模板引數是隨機數發生器engine和分布器distribution

隨機數分布器和變數發生器一次只能產生乙個隨機數,但是在密碼學和其他應用領域經常需要產生一定長度的隨機資料塊。

隨機數發生器提供了成員函式generate()可以填充區間,但是分布器和變數發生器沒有這個成員函式。

可以使用乙個靜態的隨機數發生器來實現

(五)boost庫之隨機數random

boost庫為我們提供了許多的日常隨機數生成器 1.uniform smallint 在小整數域內的均勻分布 2.uniform int 在整數域上的均勻分布 3.uniform 01 在區間 0,1 上的實數連續均勻分布 4.uniform real 在區間 min,max 上的實數連續均勻分布 ...

(五)boost庫之隨機數random

boost庫為我們提供了許多的日常隨機數生成器 1.uniform smallint 在小整數域內的均勻分布 2.uniform int 在整數域上的均勻分布 3.uniform 01 在區間 0,1 上的實數連續均勻分布 4.uniform real 在區間 min,max 上的實數連續均勻分布 ...

random模組(隨機數庫)

random.random random.random 用於生成乙個0到1的隨機浮點數 0 n 1.0 random.uniform random.uniform的函式原型為 random.uniform a,b 用於生成乙個指定範圍內的隨機符點數,兩個引數其中乙個是上限,乙個是下限。如果a b,則...