⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 program.cs

📁 统计学的几个算法
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
    class Program
    {
          
            public struct zhongshu
            {
                public int frquency;
                public double  value;
            }
        static void Main(string[] args)
        {
            StreamWriter writer = new StreamWriter(@"c:\result.txt");
            
            double[] land = new double[30];
            for (int i = 0; i < land.Length; i++)
            {

                    land[i] = Convert.ToDouble(Console.ReadLine());
                
            }

            //计算平均值
            double S=0;
            double even;
            for (int i = 0; i < land.Length; i++)
            {
                S = S + land[i];
            }
            even = S / land.Length;
            Console.WriteLine("平均值:{0}",even);
            writer.WriteLine("平均值:{0}", even);
            

            //计算中位数
            double middle;
            double temp;
            for (int i = 0; i <land.Length; i++)
            {
                for (int j = i + 1; j < land.Length; j++)
                {
                    if (land[i] > land[j])
                    {
                        temp = land[i];
                        land[i] = land[j];
                        land[j] = temp;
                    }
                }
            }

            for (int i = 0; i < land.Length; i++)
            {

               Console.WriteLine("{0}",land[i]);
            }

            if(land.Length%2==1)
            {middle=land[(land.Length-1)/2];}
            else
            {middle=(land[land.Length/2]+land[land.Length/2-1])/2;}
            Console.WriteLine("中位数:{0}", middle);
            writer.WriteLine("中位数:{0}", middle);

            //计算众数
            zhongshu[] zhong=new zhongshu[land.Length];
            bool flag;
            int k=0;
            zhong[0].value = land[0];
            for (int i = 0; i < land.Length; i++)
            {

                flag = false;
                for(int n=0;n<=k;n++)
                {
                    if (land[i] == zhong[n].value)
                    { zhong[n].frquency++; flag = true; }
                }
                if (flag == false)
                { k++; zhong[k].value = land[i]; zhong[k].frquency = 1; }

            }
           
            for (int i = 0; i < land.Length; i++)
            {

               writer.WriteLine("{0},{1}", zhong[i].frquency,zhong[i].value);
            }

            int max = zhong[0].frquency;
            double zhongNumber = zhong[0].value;
           
            for (int i = 1; i <zhong.Length; i++)
            {
                if (zhong[i].frquency > max)
                { 
                    max = zhong[i].frquency; 
                    zhongNumber = zhong[i].value; 
                }
            }
            Console.WriteLine("众数:{0}", zhongNumber);
           writer.WriteLine("众数:{0}", zhongNumber);

            //计算极差
            double jiCha;
            jiCha = land[land.Length-1] - land[0];
            Console.WriteLine("极差:{0}", jiCha);
            writer.WriteLine("极差:{0}", jiCha);

            //计算离差
            double[] liCha = new double[land.Length];
            Console.WriteLine("离差");
            writer.WriteLine("离差");
            for (int i = 0; i < land.Length; i++)
            {
                liCha[i]=land[i] - even;
                Console.WriteLine("       {0}", liCha[i]);
                writer.WriteLine("       {0}", liCha[i]);
            }

            //计算离差平方和
            double liChaP;
            liChaP = 0.00;
            for (int i = 0; i < land.Length; i++)
            {
                liChaP = liChaP+liCha[i]*liCha[i];
            }
            Console.WriteLine("离差平方和:{0}", liChaP);
            writer.WriteLine("离差平方和:{0}", liChaP);


            //计算方差
            double fangCha;
            S = 0;
            for (int i = 0; i < land.Length; i++)
            {
                S = S + (land[i] - even) * (land[i] - even);
            }
            fangCha = S / land.Length;
            Console.WriteLine("方差:{0}", fangCha);
            writer.WriteLine("方差:{0}", fangCha);
            
            //计算标准差
            double biaozhunCha;
            biaozhunCha = Math.Sqrt(fangCha);
            Console.WriteLine("标准差:{0}", biaozhunCha);
            writer.WriteLine("标准差:{0}", biaozhunCha);

            //计算标准差的无偏估计
            double WupianGuji = Math.Sqrt(fangCha * land.Length / (land.Length - 1));
            Console.WriteLine("变异系数:{0}", WupianGuji);
            writer.WriteLine("变异系数:{0}", WupianGuji);

            //计算变异系数
            double bianYi;
            bianYi = WupianGuji / even;
            Console.WriteLine("变异系数:{0}", bianYi);
            writer.WriteLine("变异系数:{0}", bianYi);
            writer.Close();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -