Нормальное распределение - C#

Узнай цену своей работы

Формулировка задачи:

Добрейший вечерочек! Имеется некоторый список со значениями. К каждому элементу списка необходимо применить нормальное распределение со среднеквадратичным отклонением в 10%. Как это сделать? Всем заранее спасибо за любую оказанную помощь

Решение задачи: «Нормальное распределение»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
 
namespace WindowsFormsApplication367
{
    public partial class Form1 : Form
    {
        private List<float> values = new List<float>();
        private List<float> result = new List<float>();
        private static Random rnd = new Random();
 
        public Form1()
        {
            InitializeComponent();
 
            //создаем список значений 
            for(int i=0;i<100;i++)
                values.Add(i);
            
            //добавляем к каждому значению случайную величину нормального распределения с ср.кв.откл = 10% от исх значения
            foreach(var val in values)
            {
                var sigma = val * 0.1f;
                result.Add(Gauss(val, sigma));
            }
        }
 
        /// <summary>
        /// Нормальное распределение
        /// </summary>
        public static float Gauss(float center, float sigma)
        {
            return (float)(center + sigma * (rnd.NextDouble() + rnd.NextDouble() + rnd.NextDouble() + rnd.NextDouble() - 2) / 2);
        }
 
        protected override void OnPaint(PaintEventArgs e)
        {
            //отрисовываем
            var w = 5;
            using(var pen = new Pen(Color.Navy, w* 0.8f))
            for(int i=0;i<values.Count;i++)
            {
                var x = i * w;
                e.Graphics.DrawLine(pen, x, 150, x, 150 - values[i]);
                e.Graphics.DrawLine(pen, x, 300, x, 300 - result[i]);
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы