コード例 #1
0
        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;
        }
コード例 #2
0
 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];
         }
     }
 }