public void agregacja(RozkladZalezny agregowany) { foreach (trClass klasa in agregowany.zagregowaneKlasy) { this.zagregowaneKlasy.Add(klasa); } double[][] noweStany = new double[rWiazka.V + 1][]; for (int nPoz = 0; nPoz <= rWiazka.V; nPoz++) { int ostInd = rWiazka.V - nPoz; noweStany[nPoz] = new double[ostInd + 1]; } for (int nPoz = 0; nPoz <= rWiazka.V; nPoz++) { int ostInd = rWiazka.V - nPoz; noweStany[0][nPoz] += this[0, nPoz] * agregowany[0, nPoz]; //UWAGA for (int n = 0; n <= ostInd; n++) { noweStany[n][nPoz] = 0; for (int l = 0; l <= n; l++) { noweStany[n][nPoz] += this[l, nPoz + n - l] * agregowany[n - l, nPoz + l]; //UWAGA } } } stany = noweStany; }
public RozkladZalezny(RozkladZalezny kopiowany) { this._v = kopiowany._v; this.rWiazka = kopiowany.rWiazka; zagregowaneKlasy = new List <trClass>(); foreach (trClass klasa in kopiowany.zagregowaneKlasy) { zagregowaneKlasy.Add(klasa); } stany = new double[_v + 1][]; for (int nPoz = 0; nPoz <= _v; nPoz++) { int ostInd = _v - nPoz; stany[nPoz] = new double[ostInd + 1]; } for (int nPoz = 0; nPoz <= _v; nPoz++) { int ostInd = _v - nPoz; for (int n = 0; n <= ostInd; n++) { stany[n][nPoz] = kopiowany[n, nPoz]; } } }