lvbarbosa 26 de jun. de 2017 1 like
public static double desvioPadrao ( List < Integer > numeros ) {
double media = numeros . stream (). mapToInt ( Integer :: intValue ). average (). orElse ( 0 );
double mediaDesvios = numeros . stream (). mapToDouble ( i -> Math . pow ( i - media , 2 )). average (). orElse ( 0 );
return Math . sqrt ( mediaDesvios );
}
Fernanda_Gomes1 27 de jun. de 2017
public static double desvioPadrao ( List < Integer > numeros ) {
double media = numeros . stream (). mapToInt ( Integer :: intValue ). average (). orElse ( 0 );
double mediaDesvios = numeros . stream (). mapToDouble ( i -> Math . pow ( i - media , 2 )). average (). orElse ( 0 );
return Math . sqrt ( mediaDesvios );
}
Não deu certo, eu tentei mas não deu certo!
DigaoParceiro 27 de jun. de 2017 1 like
Com a biblioteca do Apache Commons é bem fácil:
private double getDesvioPadrao ( double [] valores ){
return Math . sqrt ( new Variance (). evaluate ( valores ));
}
Link da biblioteca:
http://commons.apache.org/proper/commons-math/download_math.cgi
anon62916717 27 de jun. de 2017 1 like
Provavelmente você não passou o parâmetro List de forma correta, pois a codificação dele não tem erro.
Por um pequeno detalhe estatístico, vou postar duas codificações relacionadas a desvio padrão, entretanto, uma delas é equivalente à que lvbarbosa já fez, e o motivo da postagem pode ser vista no nome de cada um dos métodos relacionados:
private static double desvioPadraoAmostral ( double ... variaveis ) {
if ( variaveis . length < 2 ) {
return 0 ;
}
double somaQuadradoVariaveis = Arrays . stream ( variaveis ) . map ( num -> num * num ) . sum ();
return Math . sqrt (( somaQuadradoVariaveis - variaveis . length * Math . pow ( media ( variaveis ), 2 )) / ( variaveis . length - 1 ));
}
//
private static double desvioPadraoPopulacional ( double ... variaveis ) {
if ( variaveis . length < 2 ) {
return 0 ;
}
double somaQuadradoVariaveis = Arrays . stream ( variaveis ) . map ( num -> num * num ) . sum ();
return Math . sqrt (( somaQuadradoVariaveis / variaveis . length ) - Math . pow ( media ( variaveis ), 2 ));
}
//
private static double media ( double ... variaveis ) {
return Arrays . stream ( variaveis ) . average () . orElse ( 0 );
}
A utilização de qualquer um dos métodos, de qualquer um dos participantes, depende de informar os parâmetros de forma correta.
Provavelmente seu erro anda por aqui: https://www.youtube.com/watch?v=B9dUNclaUsg