欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > C# >内容正文

C#

高斯分布概念学习和C#自定义控件

发布时间:2025/4/14 C# 60 豆豆
生活随笔 收集整理的这篇文章主要介绍了 高斯分布概念学习和C#自定义控件 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

正态分布(Normal distribution),也称“常态分布”,又名高斯分布(Gaussian distribution);
是一个在数学、物理及工程等领域都非常重要的概率分布,
正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人们又经常称之为钟形曲线;
若随机变量X服从一个数学期望为μ、方差为σ2的正态分布,记为N(μ,σ2);

 正态分布有两个参数,即期望(均数)μ和标准差σ,σ2为方差。
正态分布具有两个参数μ和σ^2的连续型随机变量的分布,第一参数μ是服从正态分布的随机变量的均值,第二个参数σ^2是此随机变量的方差,所以正态分布记作N(μ,σ2)。
μ是正态分布的位置参数,描述正态分布的集中趋势位置。概率规律为取与μ邻近的值的概率大,而取离μ越远的值的概率越小。正态分布以X=μ为对称轴,左右完全对称。
σ描述正态分布资料数据分布的离散程度,σ越大,数据分布越分散,σ越小,数据分布越集中。也称为是正态分布的形状参数,σ越大,曲线越扁平,反之,σ越小,曲线越瘦高。

曾学过一点,已经忘记了;

 下面来C#做一个自定义控件;可对外提供正态分布随机数;

解决方案新建一个winform项目和一个用户控件项目;

用户控件界面,

运行一下控件项目;

 

之后在工具箱中出现此自定义控件;

 

工程结构;

 

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; //返回两个服从正态分布N(0,1)的随机数z0 和 z1}private void button1_Click(object sender, EventArgs e){textBox1.Text = Gss;if (GSBtnClicked != null){GSBtnClicked(sender, new EventArgs());}}}

运行一下控件项目; 

 

外部可获取自定义控件的Gss属性;可触发用户控件的自定义事件;

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;

 

窗体使用了自定义控件以后,可看到自定义的事件;

 

生成正态分布随机数的代码来自,

    [转载]用C#产生正态分布随机数_suqin814_新浪博客 

总结

以上是生活随笔为你收集整理的高斯分布概念学习和C#自定义控件的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。