多維隨機數的生成問題

2021-04-09 11:06:44 字數 1678 閱讀 9220

今天寫隨機模擬的程式遇到了乙個問題;

x1,x2,...,xn均勻分布的隨機數,xi>=0;

x1+x2+.....xn=1;

如何生成這樣隨機數的問題,假設n=5;

而且x1,..,x5 相互之間選取是公平的!!!

一開始,大家都會想到乙個方法,

x1 從[0,1]      中隨機取;

x2 從[0,1-x1]   中隨機取;

......

x5 從[0,1-x1-..-x5].

我試了一下20個

0.3410    0.2842    0.0677    0.1643    0.0444

0.0097    0.3013    0.6653    0.0018    0.0135

0.2369    0.1436    0.3208    0.0177    0.2600

0.9462    0.0409    0.0027    0.0086    0.0012

0.4977    0.2503    0.2106    0.0100    0.0303

0.8153    0.1132    0.0377    0.0184    0.0097

0.8425    0.1087    0.0155    0.0201    0.0047

0.1197    0.2955    0.0655    0.4742    0.0046

0.7358    0.0235    0.0929    0.1437    0.0014

0.8553    0.1155    0.0127    0.0145    0.0016

0.0921    0.2226    0.2571    0.0888    0.2629

0.5569    0.1414    0.0450    0.0263    0.0640

0.3176    0.1832    0.4823    0.0063    0.0002

0.1323    0.7798    0.0608    0.0202    0.0032

0.1931    0.2242    0.1681    0.4143    0.0001

0.2613    0.5561    0.0190    0.1222    0.0039

0.1805    0.2741    0.0925    0.0702    0.0770

0.5199    0.4443    0.0165    0.0056    0.0119

0.6232    0.2762    0.0797    0.0141    0.0062

0.0348    0.8789    0.0478    0.0056    0.0113

和  8.3120    5.6574    2.7602    1.6471    0.8122

平均0.4156    0.2829    0.1380    0.0824    0.0406

這樣做是有問題的,對於x5的期望幾乎是x1的10倍.

我改用最保守的方法,x1,...x5 都是[0,1]上的隨機數,

如果 x1+x2+.....xn=1;我接受, 不等於就放棄

我程式設計試了一下  0.995學概率統計的因該有更好的辦法吧,賜教一下!

不知道大家有什麼其他好的辦法呢? [email protected] (鄭志勇) 

隨機數生成問題

給定隨機生成整數1到5的函式,寫出能隨機生成整數1到7的函式 方法1 rand5 5 rand5 得到 6,30 區間內25個數等概率分布 可以只用6 26之間的21個數,對映到1 7這7個數 27 30怎麼辦?拋棄掉 int rand7 這樣生成的1 7概率均勻,只是其和不等於1 方法2 用ran...

Lua 隨機數生成問題

lua 生成隨機數需要用到兩個函式 math.randomseed xx math.random n m 1.math.randomseed n 接收乙個整數 n 作為隨機序列種子。2.math.random n m 有三種用法 無參呼叫,產生 0,1 之間的浮點隨機數 只有引數 n,產生 1 n ...

Lua 隨機數生成問題

lua 生成隨機數需要用到兩個函式 math.randomseed xx math.random n m 1.math.randomseed n 接收乙個整數 n 作為隨機序列種子。2.math.random n m 有三種用法 無參呼叫,產生 0,1 之間的浮點隨機數 只有引數 n,產生 1 n ...