- const int N = 100;
- //const double MAX = 50.0;
- //const double MIN = 40.0;
- //const double MIU = 40.0;
- //const double SIGMA = 1.0;
- static Random aa = new Random((int)(DateTime.Now.Ticks / 10000));
- public double AverageRandom(double min, double max)//产生(min,max)之间均匀分布的随机数
- {
- int MINnteger = (int)(min * 10000);
- int MAXnteger = (int)(max * 10000);
- int resultInteger = aa.Next(MINnteger, MAXnteger);
- return resultInteger / 10000.0;
- }
- public double Normal(double x, double miu, double sigma) //正态分布概率密度函数
- {
- return 1.0 / (x * Math.Sqrt(2 * Math.PI) * sigma) * Math.Exp(-1 * (Math.Log(x) - miu) * (Math.Log(x) - miu) / (2 * sigma * sigma));
- }
- public double Random_Normal(double miu, double sigma, double min, double max)//产生正态分布随机数
- {
- double x;
- double dScope;
- double y;
- do
- {
- x = AverageRandom(min, max);
- y = Normal(x, miu, sigma);
- dScope = AverageRandom(0, Normal(miu, miu, sigma));
- } while (dScope > y);
- return x;
- }
- protected void btnGenerate_Click(object sender, EventArgs e)
- {
- //定义这个正态分布随机数的范围、均值和方差
- double min = double.Parse(txtBegin.Text);
- double max = double.Parse(txtEnd.Text);
- double miu = double.Parse(txtMIU.Text);
- double sigma = double.Parse(txtSIGMA.Text);
- //随机差生四个随机数
- TextBox1.Text = Random_Normal(miu,sigma,min,max).ToString();
- TextBox2.Text = Random_Normal(miu,sigma,min,max).ToString();
- TextBox3.Text = Random_Normal(miu,sigma,min,max).ToString();
- TextBox4.Text = Random_Normal(miu,sigma,min,max).ToString();
- }