Nan przy liczeniu wartości

Nan przy liczeniu wartości
PO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 92
0

Przy liczeniu średniej geometrycznej:

Kopiuj

public static double srednia_geometryczna (List<? extends Data> list)
	{
		return Math.pow(iloczyn(list), 1/ile(list));
	}

Otrzymuję wartość "NaN". Wiem czym jest NaN, niestety nie za bardzo potrafię zrozumieć, czemu taka wartość jest przyjmowana.
"ile" to liczona w innej metodzie ilość elementów, "iloczyn" to oczywiście iloczyn elementów.
Dla innej metody błąd również występuje, znalazłem go tutaj:

Kopiuj
double sumy2;
sumy2 = Math.sqrt(((Miary_rozproszenia.wariancja(list)/Miary_klasyczne_pozycyjne.ile(list)) - (Miary_rozproszenia.wariancja(list2)/Miary_klasyczne_pozycyjne.ile(list2)))); - doszedłem do tego , że tutaj otrzymuję błąd. 

Niestety nie wiem gdzie w czym leży problem. Jesteście w stanie pomóc? :\

PO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 92
0

PS. poradziłem sobie z drugą metodą , ale dalej mam problem ze średnią... Nie widzę nigdzie żadnego dzielenia przez 0.

SM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 52
0

Pokaz kod tych metod oraz jakie argumenty przesylasz kiedy zwraca Ci Nan

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
0

Wyrażenie

Kopiuj
Math.pow(iloczyn(list), 1/ile(list))

ma wartość NaN jeżeli iloczyn(list) jest ujemne, a 1/ile(list) nie jest całkowite.

PO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 92
0

Bogdans, dzięki za odpowiedź, udało mi się już dojść do tego. Zasada ta sama, ale "przetłumaczyłem" sobie to trochę inaczej - po prostu nie można wyciągnąć pierwiastka z liczby ujemnej , jeżeli więc w zbiorze jest nieparzysta ilość elementów ujemnych nigdy nie będzie można tego obliczyć. Wszystko się oczywiście sprowadza do tego co napisałeś :) Dzięki , pozdrawiam

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.