• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Znajdowanie najmniejszej odległości między punktami

0 głosów
102 wizyt
pytanie zadane 11 lutego w C i C++ przez hicodyn Początkujący (360 p.)
void przypisywanieDoKlastrow(const std::vector<punkt>& vectorCentroidow, std::vector<punkt>& vectorPunktow, daneWejsciowe przelaczniki)
{
    double odleglosc1 = 0, odleglosc2 = 0;
    for (size_t i = 0; i < vectorPunktow.size(); i++)
    {
        vectorPunktow[i].nrPoprzedniegoKlastra = vectorPunktow[i].nrKlastra;
        for (size_t j = 0; j < vectorCentroidow.size(); j++)
        {
            for (int k = 0; k < przelaczniki.d; k++)
            {
                odleglosc2 += (vectorPunktow[i].wspolrzedne[k] - vectorCentroidow[j].wspolrzedne[k])*(vectorPunktow[i].wspolrzedne[k] - vectorCentroidow[j].wspolrzedne[k]);
            }
            if (odleglosc2 <= odleglosc1)
            {
                vectorPunktow[i].nrKlastra = j;
            }
            odleglosc1 = odleglosc2;
            

            /*odleglosc2 = sqrt(odleglosc2);
            if (odleglosc2 > odleglosc1)
            {
                vectorPunktow[i].nrKlastra = j-1;
            }
            else
            {
                vectorPunktow[i].nrKlastra = j;
            }
            odleglosc1 = odleglosc2;*/
        }
        odleglosc1 = 0;
        odleglosc2 = 0;
    }
}

vectorCentroidow, to vector zawierający zmienne typu punkt, tak samo jak vectorPunktow. Tutaj jest struktura punkt: 

struct punkt
{
	std::vector<double> wspolrzedne;
	int nrKlastra{};
	int nrPoprzedniegoKlastra{};
};

przelaczniki.d, to liczba mówiąca o tym, ile wymiarow ma każdy punkt zarowno w vectorPunktow jak i w vectorCentroidow. Chodzi o to, zeby przypisac kazdemu punktowi z vectorPunktow jeden punkt z vectorCentroidow według odległości to znaczy do ktorego centroidu danemu punktowi jest najblizej.

Moje pytanie brzmi jak mam znalezc do którego centroida danemu punktowi jest najblizej?

1 odpowiedź

0 głosów
odpowiedź 11 lutego przez Michał Kazula Pasjonat (19,020 p.)

Podobne pytania

0 głosów
0 odpowiedzi 55 wizyt
pytanie zadane 16 listopada 2020 w C i C++ przez ResCrove Obywatel (1,700 p.)
0 głosów
3 odpowiedzi 120 wizyt
pytanie zadane 31 maja 2020 w C i C++ przez Dezmonths Początkujący (310 p.)
0 głosów
1 odpowiedź 410 wizyt
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.Komentarze

85,698 zapytań

134,499 odpowiedzi

298,513 komentarzy

56,625 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...