Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet egy N elemű tömb...

Hogyan lehet egy N elemű tömb szórását kiszámítani (C++ -ban)?

Figyelt kérdés
2015. okt. 8. 21:58
 1/7 anonim ***** válasza:

Matematikai műveleteket tudsz végezni C++-ban?

Be tudod járni a tömböt?

Tudod mi a szórás?

Ezek kellenek hozzá. Mi nem megy? :)

2015. okt. 8. 22:14
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:
2015. okt. 8. 22:14
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:

Nem tudom erre irányul-e a kérdés, de ha igen:

mivel az "átlagtól való átlagos eltérés"-ről beszélünk, egy naiv megoldásban nyilván kétszer kell iterálni a tömböt, egyből nem fog menni (előbb tudni kell az átlagot, ugye..)

2015. okt. 8. 22:31
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
62%

Például így:


template<typename T, std::size_t N>

constexpr auto ArrLength(T(&)[N])

{

return N;

}


template<typename Iter>

auto Szoras(Iter first, Iter last)

{

auto elemekSzama = std::distance(first, last);

auto atlag = std::accumulate(first, last, 0.0) / elemekSzama;

auto eredmeny = 0.0;

for (; first != last; ++first)

{

eredmeny += std::pow(*first - atlag, 2);

}

return std::sqrt(eredmeny / elemekSzama);

}


int main()

{

std::vector<int> v = {1,1,1,1,2,2,2,3,3};

int arr[] = {1,1,1,1,2,2,2,3,3};


std::cout << "Szoras: " << Szoras(v.cbegin(), v.cend()) << '\n';

std::cout << "Szoras: " << Szoras(arr, arr + ArrLength(arr)) << '\n';

}

2015. okt. 8. 22:40
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

# 4/4 Időpont ma 22:40


És a lambda kifejezések hol maradnak? :-)

2015. okt. 8. 23:16
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:

Elnézést, máris javítom.


auto iAmHere = [](auto&& container) { return Szoras(std::cbegin(container), std::cend(container)); };


std::vector<int> v = {1,1,1,1,2,2,2,3,3};

int arr[] = {1,1,1,1,2,2,2,3,3};


std::cout << "Szoras: " << iAmHere(v) << '\n';

std::cout << "Szoras: " << iAmHere(arr) << '\n';

2015. okt. 8. 23:44
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:
Igen, igen a forward lemaradt ami az auto&& miatt nem ártana, bele ne kössetek :D
2015. okt. 8. 23:47
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!