예제 #1
0
        protected override void Krok3(int nrBad)
        {
            Rozklad[] Pj   = new Rozklad[aWiazka.sumaK];
            int       stan = 0;

            for (int j = 0; j < aWiazka.sumaK; j++)
            {
                int f_j = aWiazka.PojPodgr(j + 1);
                Pj[j] = new Rozklad(aWiazka, f_j);

                Pj[j][0] = 0;
                for (int l = 0; l <= stan; l++)
                {
                    Pj[j][0] += P[l];
                }

                for (int l = 1; l <= f_j; l++)
                {
                    Pj[j][l] = P[stan + l];
                }
                stan += f_j;
                Pj[j].normalizacja();
            }
            Rozklad P2 = new Rozklad(Pj[0]);

            for (int j = 1; j < aWiazka.sumaK; j++)
            {
                P2.Agreguj(Pj[j]);
            }

            //            int f = aWiazka.pojOdPodgrupy(aWiazka.sumaK);
            //            P2.zmienDlugosc(f, true);
            P2.normalizacja(aWiazka.V);
            for (int i = 0; i < aWiazka.m; i++)
            {
                int    t        = aWiazka.ListaKlasRuchu[i].t;
                double E        = 0;
                int    poczatek = aWiazka.V - aWiazka.sumaK * (t - 1);
                for (int n = poczatek; n <= aWiazka.V; n++)
                {
                    E += P2[n];
                }
                wynikiAlg.UstawE(nrBad, aWiazka.ListaKlasRuchu[i], E);
            }
        }
예제 #2
0
        protected override void Krok3(int nrBad)
        {
            Rozklad P = new Rozklad(P_minusI[0]);

            P.Agreguj(p[0]);
            P.normalizacja(aWiazka.V);
            foreach (trClass klasa in aWiazka.ListaKlasRuchu)
            {
                int    nrKlasy = aWiazka.ListaKlasRuchu.IndexOf(klasa);
                double E       = 0;
                //int grBlokady = aWiazka.V - klasa.t + 1;

                for (int n = aWiazka.V - klasa.t + 1; n <= aWiazka.V; n++)
                {
                    E += P[n];
                }
                wynikiAlg.UstawE(nrBad, klasa, E);
            }
        }
예제 #3
0
        protected override void Krok3(int nrBad)
        {
            Rozklad[] Pj = new Rozklad[2];

            int fK   = aWiazka.pojOdPodgrupy(aWiazka.sumaK);
            int stan = aWiazka.V - fK;

            Pj[0] = new Rozklad(aWiazka, stan);
            Pj[1] = new Rozklad(aWiazka, fK);

            double suma = 0;

            for (int n = 0; n <= stan; n++)
            {
                Pj[0][n] = P[n];
                suma    += P[n];
            }
            Pj[1][0] = suma;

            for (int l = 1; l <= fK; l++)
            {
                Pj[1][l] += P[l + stan];
            }

            Rozklad P2 = new Rozklad(Pj[0]);

            P2.Agreguj(Pj[1]);
            P2.normalizacja();

            //            int f = aWiazka.pojOdPodgrupy(aWiazka.sumaK);
            //            P2.zmienDlugosc(f, true);
            for (int i = 0; i < aWiazka.m; i++)
            {
                int    t = aWiazka.ListaKlasRuchu[i].t;
                double E = 0;
                for (int n = P2.V - t + 1; n <= P2.V; n++)
                {
                    E += P2[n];
                }
                wynikiAlg.UstawE(nrBad, aWiazka.ListaKlasRuchu[i], E);
            }
        }
예제 #4
0
        protected override void Krok3(int nrBad)
        {
            for (int i = 0; i < aWiazka.m; i++)
            {
                int     t = aWiazka.ListaKlasRuchu[i].t;
                Rozklad z = OkrRozklNiewPJPpojPodgr(t);
                //                Rozklad z = OkrRozklNiewPJPpojPodgr(t);
                Rozklad P2 = new Rozklad(P);

                for (int j = 1; j < aWiazka.sumaK; j++)
                {
                    P2.zmienDlugosc(P2.V + aWiazka.tMax - 1, false);
                    P2.Agreguj(z);
                }
                P2.zmienDlugosc(aWiazka.V + (aWiazka.sumaK - 1) * (aWiazka.tMax - t), true);
                double E = 0;
                for (int n = P2.V - t + 1; n <= P2.V; n++)
                {
                    E += P2[n];
                }
                wynikiAlg.UstawE(nrBad, aWiazka.ListaKlasRuchu[i], E);
            }
        }