Średnia ważona - wzór

Wątek przeniesiony 2016-10-26 11:21 z C# i .NET przez ŁF.

0

Witajcie, C#, Visual 2015 Community - problem -> Średnia ważona.

Nie proszę o gotowy program, tylko o wzór, szablon, wstępne naprowadzenie, bo mam z tym problem.

W skrócie, mam przedział liczb: między 82 do 86, one są z wagą 1. Czyli najwyższą. Każda inna liczba jest z odpowiednią wagą, i tutaj zastosowałem funkcję malejącą f = 2^(-x). Gdzie 'x' to odległość liczby (różnica) od 82 lub 86, w zależności czy to będzie liczba poniżej 82 czy powyżej 86. Przykład:

75 -> f = 2^(-7) = 0,0078125. Więc waga dla liczby 75 będzie właśnie wynosić 0,0078125.

Zależy mi bardzo na każdej pomocnej radzie. Mam nadzieję, że problem jasno przedstawiłem, nie pogniewam się na resztki kodu. :P Dziękuję ślicznie! :)

0

Każda inna liczba jest z odpowiednią wagą

a co z liczba 10000? Ma to sens dla Ciebie?

a co z liczba -20000? Ma to sens dla Ciebie?

Dlaczego taki wzor?

a z kodem to jaki masz problem?

i w ogole z czym masz problem?

0

Wartości maksymalna to 100, minimalna 0. Poniżej liczby 50 waga wynosi 0.

Dzięki temu wzorowi w tym przedziale uzyskuję końcową średnią ~84 na czym mi zależy nawet mając liczby takie jak np: 60, 65, 70.

Mam problem jak to zapisać, dziękuję za pomoc.

0

a przy 100 wartosc ma 1 czy bedzie mialo 2?

w sensie co zapisac? Wzor matematycznie czy piszac kod?

0

Dla liczby 100 wg., funkcji f = 2^(-x)

czyli f = 2^(-14) waga będzie wynosić 0,000061035.

Mam problem z zapisaniem tego wszystkiego jako kodu. Bardzo Cię proszę o pomoc, albo wskazówki.

1
int PoliczWage(int liczba)
{
  return Math.Pow(2, liczba);
}

tutaj masz funkcje ktora oblicza wage, z reszta powinienes juz sobie poradzic. Bo tylko dodanie tych liczb i podzielenie ich przez odpowiednia liczbe

0

Ok, dzięki, ale powiedz mi jak mam określić tą funkcję malejącą jako zmienną? Wrzucisz więcej kodu? Będę wdzięczny.

0

bardzo prosto.

  1. wczytujesz liczbe od uzytkownika
  2. sprawdzasz czy jest ona mniejsza od 82
  3. jezeli tak to odejmujesz 82 - Twojaliczba, masz pomniejszona liczbe oraz od 1 odejmujesz wynik z tej funkcji ktora dalem
  4. jezeli nie to sprawdzasz czy jest w zasiegu 82-86. Jezeli jest zwracasz 1
  5. jezeli nie to odejmujesz na zasadzie TwojaLiczba - 86 i pozniej ten wynik dodajesz do 1
0

Dzięki wielkie!

p.s fasadin, kompletnie źle to rozpisales, juz zrobilem, ale nie zrozumialeś koncepcji :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.