java - 如何根據最小值,最大值和標準差產生數列
高洛峰
高洛峰 2017-05-16 13:29:42
0
1
661

做實驗需要依照最小值,最大值和標準差產生數列,程式語言不限,麻煩大神提供個想法,數列大小為1000左右

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(1)
阿神

題主沒有說明隨機數列具體要求,例如是整數還是實數,需要滿足什麼統計分佈等等。這裡假設題主需要產生實數,且分佈是中心對稱的。這個分佈不妨用Beta分佈來構造,因為它允許調整標準差。若隨機變數取為

$$min+(max - min) X,quad X sim Beta{(alpha, alpha)}$$

容易算出這時的標準差為

$$s = frac{max - min}{2sqrt{1+2alpha}}$$

$$alpha = frac{(max-min)^2}{8s^2}-frac{1}{2}$$

經過以上分析,用 Mathematica 寫出程式碼就很容易了:

測試下效果。取最小值20,最大值100,標準差15:

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板