Nan przy liczeniu wartości

0

Przy liczeniu średniej geometrycznej:


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:

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? :\

0

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

0

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

0

Wyrażenie

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

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

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1