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); } }
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); } }
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); } }
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); } }