高斯分布概念学习和C#自定义控件
正態(tài)分布(Normal distribution),也稱“常態(tài)分布”,又名高斯分布(Gaussian distribution);
是一個在數(shù)學、物理及工程等領域都非常重要的概率分布,
正態(tài)曲線呈鐘型,兩頭低,中間高,左右對稱因其曲線呈鐘形,因此人們又經(jīng)常稱之為鐘形曲線;
若隨機變量X服從一個數(shù)學期望為μ、方差為σ2的正態(tài)分布,記為N(μ,σ2);
?正態(tài)分布有兩個參數(shù),即期望(均數(shù))μ和標準差σ,σ2為方差。
正態(tài)分布具有兩個參數(shù)μ和σ^2的連續(xù)型隨機變量的分布,第一參數(shù)μ是服從正態(tài)分布的隨機變量的均值,第二個參數(shù)σ^2是此隨機變量的方差,所以正態(tài)分布記作N(μ,σ2)。
μ是正態(tài)分布的位置參數(shù),描述正態(tài)分布的集中趨勢位置。概率規(guī)律為取與μ鄰近的值的概率大,而取離μ越遠的值的概率越小。正態(tài)分布以X=μ為對稱軸,左右完全對稱。
σ描述正態(tài)分布資料數(shù)據(jù)分布的離散程度,σ越大,數(shù)據(jù)分布越分散,σ越小,數(shù)據(jù)分布越集中。也稱為是正態(tài)分布的形狀參數(shù),σ越大,曲線越扁平,反之,σ越小,曲線越瘦高。
曾學過一點,已經(jīng)忘記了;
?下面來C#做一個自定義控件;可對外提供正態(tài)分布隨機數(shù);
解決方案新建一個winform項目和一個用戶控件項目;
用戶控件界面,
運行一下控件項目;
?
之后在工具箱中出現(xiàn)此自定義控件;
?
工程結(jié)構(gòu);
?
UserControl1.cs,
public partial class UserControl1: UserControl{public delegate void BtnClickHandle(object sender, EventArgs e);public event BtnClickHandle GSBtnClicked;public string Gss;public UserControl1(){InitializeComponent();}private void UserControl1_Load(object sender, EventArgs e){double[] x = NormalDistribution();Gss = x[0].ToString() + ", " + x[1].ToString();}private static double[] NormalDistribution(){Random rand = new Random();double[] y;double u1, u2, v1 = 0, v2 = 0, s = 0, z1 = 0, z2 = 0;while (s > 1 || s == 0){u1 = rand.NextDouble();u2 = rand.NextDouble();v1 = 2 * u1 - 1;v2 = 2 * u2 - 1;s = v1 * v1 + v2 * v2;}z1 = Math.Sqrt(-2 * Math.Log(s) / s) * v1;z2 = Math.Sqrt(-2 * Math.Log(s) / s) * v2;y = new double[] { z1, z2 };return y; //返回兩個服從正態(tài)分布N(0,1)的隨機數(shù)z0 和 z1}private void button1_Click(object sender, EventArgs e){textBox1.Text = Gss;if (GSBtnClicked != null){GSBtnClicked(sender, new EventArgs());}}}運行一下控件項目;?
?
外部可獲取自定義控件的Gss屬性;可觸發(fā)用戶控件的自定義事件;
winform項目添加一個自定義控件,一個label、一個button、一個textBox;
private void button1_Click_1(object sender, EventArgs e){label1.Text = userControl11.Gss;}private void userControl11_GSBtnClicked_1(object sender, EventArgs e){textBox1.Text = userControl11.Gss;}運行winform項目;點form1上的button1;?
?
點自定義控件中的button;
?
窗體使用了自定義控件以后,可看到自定義的事件;
?
生成正態(tài)分布隨機數(shù)的代碼來自,
? ? [轉(zhuǎn)載]用C#產(chǎn)生正態(tài)分布隨機數(shù)_suqin814_新浪博客?
總結(jié)
以上是生活随笔為你收集整理的高斯分布概念学习和C#自定义控件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用win32 API 下载文件
- 下一篇: C# 委托基本例子