Beispiel #1
0
        public double OkreslSredniaOdleglosc(Mrowka sprawdzanaMrowka)
        {
            if (czasDlaKtoregoPoliczonoOstWartosc == czas.Aktualny)
            {
                return(ostatniaObliczonaWartosc);
            }
            else
            {
                if (czas.Aktualny <= deltaT)
                {
                    // Im bardziej na to patrzę, tym bardziej rozsądne wydaje mi się, żeby raczej używać stałej, choćby i 0.
                    // Pierwsze kilka iteracji i tak jest praktycznie bez znaczenia.
                    var wartoscPoczatkowa = zrodloWartPoczatkowych.OkreslSredniaOdleglosc(sprawdzanaMrowka);
                    poprzednieWartosci[czas.Aktualny] = wartoscPoczatkowa;
                    return(wartoscPoczatkowa);// - kAlfa * wartoscPoczatkowa;
                }
                else
                {
                    int    staryCzas = czas.Aktualny - deltaT;
                    double wartHistorycznaDopasowania = srednieDopasowaniaOdCzasu[staryCzas];
                    double roznicaSrednich            = wartHistorycznaDopasowania - srednieDopasowaniaOdCzasu[czas.Aktualny - 1]; // Jeśli -1 tu nadal jest: to nieprzemyślana poprawka na szybko, bo średniej dla danego aktualnego t jeszcze nie było. Przemyśleć i ew. poprawić.
                    double wartHistorycznaSredniejOdl = poprzednieWartosci[staryCzas];
                    double wartAktualna = wartHistorycznaSredniejOdl - kAlfa * roznicaSrednich;
                    poprzednieWartosci[czas.Aktualny] = wartAktualna;

                    czasDlaKtoregoPoliczonoOstWartosc = czas.Aktualny;
                    ostatniaObliczonaWartosc          = wartAktualna;
                    return(ostatniaObliczonaWartosc);
                }
            }
        }
        private Brush OkreslKolor(Mrowka mrowka)
        {
            int bazaIdPedzla = okreslaczPedzla.ZwrocBazeDoOkresleniaPedzla(mrowka);

            if (pedzleKlas.TryGetValue(bazaIdPedzla, out var znanyKolor))
            {
                return(znanyKolor);
            }

            var idKoloru  = bazaIdPedzla % dostepnePedzle.Count;
            var nowyKolor = dostepnePedzle[idKoloru];

            if (pedzleKlas.ContainsValue(nowyKolor))
            {
                if (pedzleKlas.Count >= dostepnePedzle.Count)
                {
                    return(nowyKolor);
                }
                else
                {
                    nowyKolor = dostepnePedzle.First(kolor => !pedzleKlas.Values.Contains(kolor));
                    pedzleKlas[bazaIdPedzla] = nowyKolor;
                }
            }
            else
            {
                pedzleKlas[bazaIdPedzla] = nowyKolor;
            }

            return(nowyKolor);
        }
Beispiel #3
0
        private double OkreslSkladowaOceny(Mrowka oceniana, Mrowka zSasiedztwa)
        {
            var odleglosc = sloOdleglosci.OkreslOdleglosc(oceniana, zSasiedztwa);
            var sredniaOdlDlaOcenianej = srednieOdleglosci.OkreslSredniaOdleglosc(oceniana);

            var odlKwadrat                   = odleglosc * odleglosc;
            var sredniaOdlKwadrat            = sredniaOdlDlaOcenianej * sredniaOdlDlaOcenianej;
            var stosunekSredniejDoFaktycznej = sredniaOdlKwadrat / (odlKwadrat + sredniaOdlKwadrat);

            return(stosunekSredniejDoFaktycznej);
        }
 public string Okresl(Mrowka mrowka)
 {
     if (mrowka != null)
     {
         return(Formatuj(mrowka.Id.ToString()));
     }
     else
     {
         return(Formatuj(String.Empty));
     }
 }
Beispiel #5
0
 public int ZwrocBazeDoOkresleniaPedzla(Mrowka mrowkaDoNamalowania)
 {
     if (mrowkaDoNamalowania is null)
     {
         return(wartDomyslnaNull);
     }
     if (slownik.TryGetValue(okreslaczKlucza(mrowkaDoNamalowania), out int baza))
     {
         return(baza);
     }
     return(wartDomyslnaBrak);
 }
 public string Okresl(Mrowka mrowka)
 {
     if (mrowka != null)
     {
         Console.BackgroundColor = (ConsoleColor)(mrowka.Klasa % 16);
         return(Formatuj(mrowka.Klasa.ToString()));
     }
     else
     {
         Console.ResetColor();
         return(Formatuj(String.Empty));
     }
 }
Beispiel #7
0
        private static double ObliczBladKwadratowyPomiedzy(Mrowka centrum, Mrowka faktyczna)
        {
            var dlugoscMrowkiWMm = centrum.Dane.Length;
            var blad             = 0.0;

            for (int i = 0; i < dlugoscMrowkiWMm; i++)
            {
                var bladDlaWymiaru = Math.Pow(faktyczna.Dane[i] - centrum.Dane[i], 2);
                blad += bladDlaWymiaru;
            }

            return(blad);
        }
Beispiel #8
0
 public double Ocen(Mrowka mrowka, (int x, int y) pozycjaMrowki)
Beispiel #9
0
 public bool CzyAktywowac(Mrowka mrowka, (int x, int y) pozycjaMrowki)
 public int OkreslKlase(Mrowka mrowka, (int x, int y) pozycjaMrowki)
 public double OkreslSredniaOdleglosc(Mrowka sprawdzanaMrowka)
 {
     return(srednia.OkreslSredniaOdleglosc(sprawdzanaMrowka));
 }
Beispiel #12
0
 public void Przemiesc(Mrowka mrowka, (int x, int y) pozycjaMrowki)
 public int ZwrocBazeDoOkresleniaPedzla(Mrowka mrowkaDoNamalowania)
 {
     return(mrowkaDoNamalowania != null ?
            mrowkaDoNamalowania.Klasa :
            wartDomyslna);
 }
Beispiel #14
0
 public double OkreslSredniaOdleglosc(Mrowka sprawdzanaMrowka)
 {
     return(srednieOdleglosci[sprawdzanaMrowka.Id]);
 }