Пример #1
0
        public double DoDoTuongTu(EPAA _data, int epaa)
        {
            int    n     = soCot;
            int    w     = epaa;
            double nw    = n * 1.0 / w;
            EPAA   data1 = _data.ChuanHoa();
            EPAA   data2 = ChuanHoa();

            double ret     = 0;
            double s_alpha = 0;

            double dpaa = 0, drpaa = 0;

            for (int i = 0; i < n; i++)
            {
                double r;
                r     = data2.Data[i].Avg.Giatri - data1.Data[i].Avg.Giatri;
                r     = r * r;
                dpaa += r;
            }
            drpaa = nw * dpaa;

            for (int i = 0; i < w; i++)
            {
                s_alpha += 0 * 0;
            }

            ret = Math.Sqrt(drpaa + ((nw - 1) * (nw + 1) * (nw + 1)) * s_alpha / 18);

            return(ret);
        }
Пример #2
0
        public EPAA ChuanHoa()
        {
            EPAA newData = new EPAA();

            double meanQ = GiaTriTrungBinhTrongDoan(0, soCot).Giatri;

            double varQ   = 0;
            double varQTu = 0;

            for (int i = 0; i < soCot; i++)
            {
                varQTu += Math.Pow((data[i].Avg.Giatri - meanQ), 2);
            }
            varQ = Math.Sqrt(varQTu / soCot);

            for (int i = 0; i < soCot; i++)
            {
                Diem giatri = new Diem((data[i].Avg.Giatri - meanQ) / varQ, data[i].Avg.Vitri);

                newData.Data.Add(giatri);
            }
            newData.soCot = newData.data.Count;

            return(newData);
        }
Пример #3
0
        public EPAA copy(int viTriDau, int doDai)
        {
            EPAA ret = new EPAA();

            int i = viTriDau;

            for (i = viTriDau; i < viTriDau + doDai; i++)
            {
                ret.data.Add(data[i]);
            }
            ret.SoCot = ret.data.Count;

            return(ret);
        }
Пример #4
0
        public EPAA ThayDoiSoLuongDuLieuEPAA(int doDaiCotMoi)
        {
            DuLieuDaGopTungDoan = true;
            int  soCotMoi = soCot / doDaiCotMoi;
            EPAA newData  = new EPAA();

            if (soCot == doDaiCotMoi)
            {
                return(this);
            }
            if (doDaiCotMoi <= 0 && doDaiCotMoi > SoCot)
            {
                return(null);
            }
            int len = soCot / doDaiCotMoi;

            for (int i = 0; i < doDaiCotMoi; i++)
            {
                //Diem d = new Diem();
                //d.Max = GiaTriLonNhatTrongDoan(i * len, (i + 1) * len);
                //d.Min = GiaTriNhoNhatTrongDoan(i * len, (i + 1) * len);
                //d.Avg = GiaTriTrungBinhTrongDoan(i * len, (i + 1) * len);
                //newData.Add(d);

                Diem d = new Diem();
                d.Max = GiaTriLonNhatTrongDoan(i * len, (i + 1) * len);
                d.Min = GiaTriNhoNhatTrongDoan(i * len, (i + 1) * len);
                d.Avg = GiaTriTrungBinhTrongDoan(i * len, (i + 1) * len);

                if ((d.Max.Vitri < d.Avg.Vitri) && (d.Avg.Vitri < d.Min.Vitri))
                {
                    int index;
                    for (index = 0; index < soCotMoi / 3; index++)
                    {
                        newData.Add(new Diem(d.Max.Giatri, 0));
                    }
                    for (; index < soCotMoi * 2 / 3; index++)
                    {
                        newData.Add(new Diem(d.Avg.Giatri, 0));
                    }
                    for (; index < soCotMoi; index++)
                    {
                        newData.Add(new Diem(d.Min.Giatri, 0));
                    }
                }
                else if ((d.Min.Vitri < d.Avg.Vitri) && (d.Avg.Vitri < d.Max.Vitri))
                {
                    int index;
                    for (index = 0; index < soCotMoi / 3; index++)
                    {
                        newData.Add(new Diem(d.Min.Giatri, 0));
                    }
                    for (; index < soCotMoi * 2 / 3; index++)
                    {
                        newData.Add(new Diem(d.Avg.Giatri, 0));
                    }
                    for (; index < soCotMoi; index++)
                    {
                        newData.Add(new Diem(d.Max.Giatri, 0));
                    }
                }
                else if ((d.Min.Vitri < d.Max.Vitri) && (d.Max.Vitri < d.Avg.Vitri))
                {
                    int index;
                    for (index = 0; index < soCotMoi / 3; index++)
                    {
                        newData.Add(new Diem(d.Min.Giatri, 0));
                    }
                    for (; index < soCotMoi * 2 / 3; index++)
                    {
                        newData.Add(new Diem(d.Max.Giatri, 0));
                    }
                    for (; index < soCotMoi; index++)
                    {
                        newData.Add(new Diem(d.Avg.Giatri, 0));
                    }
                }
                else if ((d.Max.Vitri < d.Min.Vitri) && (d.Min.Vitri < d.Avg.Vitri))
                {
                    int index;
                    for (index = 0; index < soCotMoi / 3; index++)
                    {
                        newData.Add(new Diem(d.Max.Giatri, 0));
                    }
                    for (; index < soCotMoi * 2 / 3; index++)
                    {
                        newData.Add(new Diem(d.Min.Giatri, 0));
                    }
                    for (; index < soCotMoi; index++)
                    {
                        newData.Add(new Diem(d.Avg.Giatri, 0));
                    }
                }
                else if ((d.Avg.Vitri < d.Max.Vitri) && (d.Max.Vitri < d.Min.Vitri))
                {
                    int index;
                    for (index = 0; index < soCotMoi / 3; index++)
                    {
                        newData.Add(new Diem(d.Avg.Giatri, 0));
                    }
                    for (; index < soCotMoi * 2 / 3; index++)
                    {
                        newData.Add(new Diem(d.Max.Giatri, 0));
                    }
                    for (; index < soCotMoi; index++)
                    {
                        newData.Add(new Diem(d.Min.Giatri, 0));
                    }
                }
                else
                {
                    int index;
                    for (index = 0; index < soCotMoi / 3; index++)
                    {
                        newData.Add(new Diem(d.Avg.Giatri, 0));
                    }
                    for (; index < soCotMoi * 2 / 3; index++)
                    {
                        newData.Add(new Diem(d.Min.Giatri, 0));
                    }
                    for (; index < soCotMoi; index++)
                    {
                        newData.Add(new Diem(d.Max.Giatri, 0));
                    }
                }
            }
            //soCot = doDaiCotMoi;
            return(newData);
        }