高斯分布概念学习和C#自定义控件
2021/10/5 9:11:08
本文主要是介绍高斯分布概念学习和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#自定义控件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具