Please help me Calculate the standard deviation, mean, median

Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
import java.io.*;
import java.util.*;
import java.lang.*;

public class SD2 {
public static void main(String arguments[]) {


double xMean = 0.0;
double standardDeviation = 0.0;
double xMedian = 0.0;

int lSize;
BufferedReader stdIn;
StreamTokenizer text = null;

String filename = null;
LinkedList lList = new LinkedList();
double number=-1;

System.out.println("Please enter a number (-1 to exit): ");

BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
do {
String input = null;
try {
input = r.readLine();
number = Double.parseDouble(input);
lList.add(new Double(number));
} catch (IOException e) {
e.printStackTrace();
}
} while (number != -1);

lSize = lList.size();



for (int count = 0; count < lSize; ++count) {
Double dd = (Double)lList.get(count);
double dnum = dd.doubleValue();
xMean = xMean + dnum;
}
xMean = xMean / lSize;
for (int count = 0; count < lSize; ++count) {
Double dd = (Double)lList.get(count);
double dnum = dd.doubleValue();
xMedian = xMedian + dnum / 2;
}
for (int count = 0; count < lSize; ++count) {
Double dd = (Double)lList.get(count);
double dnum = dd.doubleValue();
standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
}
standardDeviation = standardDeviation / ( lSize - 1 );
standardDeviation = Math.sqrt(standardDeviation);

System.out.print("");
System.out.println("Mean:" + xMean);
System.out.println("Median:" + xMedian);
System.out.println("Standard Deviation:" + standardDeviation);
}
}

Please help me solve the problem.

Comments

  • Hi,

    I guess the formulas , which you are using to calculate the standard deviation, mean and the median are wrong..

    you can refer to this link, in which u have a clear example

    http://www.ltcconline.net/greenl/courses/201/descstat/mean.htm


    hope this helps :)




    : Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
    : import java.io.*;
    : import java.util.*;
    : import java.lang.*;
    :
    : public class SD2 {
    : public static void main(String arguments[]) {
    :
    :
    : double xMean = 0.0;
    : double standardDeviation = 0.0;
    : double xMedian = 0.0;
    :
    : int lSize;
    : BufferedReader stdIn;
    : StreamTokenizer text = null;
    :
    : String filename = null;
    : LinkedList lList = new LinkedList();
    : double number=-1;
    :
    : System.out.println("Please enter a number (-1 to exit): ");
    :
    : BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
    : do {
    : String input = null;
    : try {
    : input = r.readLine();
    : number = Double.parseDouble(input);
    : lList.add(new Double(number));
    : } catch (IOException e) {
    : e.printStackTrace();
    : }
    : } while (number != -1);
    :
    : lSize = lList.size();
    :
    :
    :
    : for (int count = 0; count < lSize; ++count) {
    : Double dd = (Double)lList.get(count);
    : double dnum = dd.doubleValue();
    : xMean = xMean + dnum;
    : }
    : xMean = xMean / lSize;
    : for (int count = 0; count < lSize; ++count) {
    : Double dd = (Double)lList.get(count);
    : double dnum = dd.doubleValue();
    : xMedian = xMedian + dnum / 2;
    : }
    : for (int count = 0; count < lSize; ++count) {
    : Double dd = (Double)lList.get(count);
    : double dnum = dd.doubleValue();
    : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
    : }
    : standardDeviation = standardDeviation / ( lSize - 1 );
    : standardDeviation = Math.sqrt(standardDeviation);
    :
    : System.out.print("");
    : System.out.println("Mean:" + xMean);
    : System.out.println("Median:" + xMedian);
    : System.out.println("Standard Deviation:" + standardDeviation);
    : }
    : }
    :
    : Please help me solve the problem.
    :
    :

  • Thanks, for the information. I thought I was using those formulas but I will try again.

    Hi,
    :
    : I guess the formulas , which you are using to calculate the standard deviation, mean and the median are wrong..
    :
    : you can refer to this link, in which u have a clear example
    :
    : http://www.ltcconline.net/greenl/courses/201/descstat/mean.htm
    :
    :
    : hope this helps :)
    :
    :
    :
    :
    : : Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
    : : import java.io.*;
    : : import java.util.*;
    : : import java.lang.*;
    : :
    : : public class SD2 {
    : : public static void main(String arguments[]) {
    : :
    : :
    : : double xMean = 0.0;
    : : double standardDeviation = 0.0;
    : : double xMedian = 0.0;
    : :
    : : int lSize;
    : : BufferedReader stdIn;
    : : StreamTokenizer text = null;
    : :
    : : String filename = null;
    : : LinkedList lList = new LinkedList();
    : : double number=-1;
    : :
    : : System.out.println("Please enter a number (-1 to exit): ");
    : :
    : : BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
    : : do {
    : : String input = null;
    : : try {
    : : input = r.readLine();
    : : number = Double.parseDouble(input);
    : : lList.add(new Double(number));
    : : } catch (IOException e) {
    : : e.printStackTrace();
    : : }
    : : } while (number != -1);
    : :
    : : lSize = lList.size();
    : :
    : :
    : :
    : : for (int count = 0; count < lSize; ++count) {
    : : Double dd = (Double)lList.get(count);
    : : double dnum = dd.doubleValue();
    : : xMean = xMean + dnum;
    : : }
    : : xMean = xMean / lSize;
    : : for (int count = 0; count < lSize; ++count) {
    : : Double dd = (Double)lList.get(count);
    : : double dnum = dd.doubleValue();
    : : xMedian = xMedian + dnum / 2;
    : : }
    : : for (int count = 0; count < lSize; ++count) {
    : : Double dd = (Double)lList.get(count);
    : : double dnum = dd.doubleValue();
    : : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
    : : }
    : : standardDeviation = standardDeviation / ( lSize - 1 );
    : : standardDeviation = Math.sqrt(standardDeviation);
    : :
    : : System.out.print("");
    : : System.out.println("Mean:" + xMean);
    : : System.out.println("Median:" + xMedian);
    : : System.out.println("Standard Deviation:" + standardDeviation);
    : : }
    : : }
    : :
    : : Please help me solve the problem.
    : :
    : :
    :
    :

  • Has anybody ever did a program like this?

    : Thanks, for the information. I thought I was using those formulas but I will try again.
    :
    : Hi,
    : :
    : : I guess the formulas , which you are using to calculate the standard deviation, mean and the median are wrong..
    : :
    : : you can refer to this link, in which u have a clear example
    : :
    : : http://www.ltcconline.net/greenl/courses/201/descstat/mean.htm
    : :
    : :
    : : hope this helps :)
    : :
    : :
    : :
    : :
    : : : Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
    : : : import java.io.*;
    : : : import java.util.*;
    : : : import java.lang.*;
    : : :
    : : : public class SD2 {
    : : : public static void main(String arguments[]) {
    : : :
    : : :
    : : : double xMean = 0.0;
    : : : double standardDeviation = 0.0;
    : : : double xMedian = 0.0;
    : : :
    : : : int lSize;
    : : : BufferedReader stdIn;
    : : : StreamTokenizer text = null;
    : : :
    : : : String filename = null;
    : : : LinkedList lList = new LinkedList();
    : : : double number=-1;
    : : :
    : : : System.out.println("Please enter a number (-1 to exit): ");
    : : :
    : : : BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
    : : : do {
    : : : String input = null;
    : : : try {
    : : : input = r.readLine();
    : : : number = Double.parseDouble(input);
    : : : lList.add(new Double(number));
    : : : } catch (IOException e) {
    : : : e.printStackTrace();
    : : : }
    : : : } while (number != -1);
    : : :
    : : : lSize = lList.size();
    : : :
    : : :
    : : :
    : : : for (int count = 0; count < lSize; ++count) {
    : : : Double dd = (Double)lList.get(count);
    : : : double dnum = dd.doubleValue();
    : : : xMean = xMean + dnum;
    : : : }
    : : : xMean = xMean / lSize;
    : : : for (int count = 0; count < lSize; ++count) {
    : : : Double dd = (Double)lList.get(count);
    : : : double dnum = dd.doubleValue();
    : : : xMedian = xMedian + dnum / 2;
    : : : }
    : : : for (int count = 0; count < lSize; ++count) {
    : : : Double dd = (Double)lList.get(count);
    : : : double dnum = dd.doubleValue();
    : : : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
    : : : }
    : : : standardDeviation = standardDeviation / ( lSize - 1 );
    : : : standardDeviation = Math.sqrt(standardDeviation);
    : : :
    : : : System.out.print("");
    : : : System.out.println("Mean:" + xMean);
    : : : System.out.println("Median:" + xMedian);
    : : : System.out.println("Standard Deviation:" + standardDeviation);
    : : : }
    : : : }
    : : :
    : : : Please help me solve the problem.
    : : :
    : : :
    : :
    : :
    :
    :

  • : Has anybody ever did a program like this?
    :
    : : Thanks, for the information. I thought I was using those formulas but I will try again.
    : :
    : : Hi,
    : : :
    : : : I guess the formulas , which you are using to calculate the standard deviation, mean and the median are wrong..
    : : :
    : : : you can refer to this link, in which u have a clear example
    : : :
    : : : http://www.ltcconline.net/greenl/courses/201/descstat/mean.htm
    : : :
    : : :
    : : : hope this helps :)
    : : :
    : : :
    : : :
    : : :
    : : : : Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
    : : : : import java.io.*;
    : : : : import java.util.*;
    : : : : import java.lang.*;
    : : : :
    : : : : public class SD2 {
    : : : : public static void main(String arguments[]) {
    : : : :
    : : : :
    : : : : double xMean = 0.0;
    : : : : double standardDeviation = 0.0;
    : : : : double xMedian = 0.0;
    : : : :
    : : : : int lSize;
    : : : : BufferedReader stdIn;
    : : : : StreamTokenizer text = null;
    : : : :
    : : : : String filename = null;
    : : : : LinkedList lList = new LinkedList();
    : : : : double number=-1;
    : : : :
    : : : : System.out.println("Please enter a number (-1 to exit): ");
    : : : :
    : : : : BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
    : : : : do {
    : : : : String input = null;
    : : : : try {
    : : : : input = r.readLine();
    : : : : number = Double.parseDouble(input);
    : : : : lList.add(new Double(number));
    : : : : } catch (IOException e) {
    : : : : e.printStackTrace();
    : : : : }
    : : : : } while (number != -1);
    : : : :
    : : : : lSize = lList.size();
    : : : :
    : : : :
    : : : :
    : : : : for (int count = 0; count < lSize; ++count) {
    : : : : Double dd = (Double)lList.get(count);
    : : : : double dnum = dd.doubleValue();
    : : : : xMean = xMean + dnum;
    : : : : }
    : : : : xMean = xMean / lSize;
    : : : : for (int count = 0; count < lSize; ++count) {
    : : : : Double dd = (Double)lList.get(count);
    : : : : double dnum = dd.doubleValue();
    : : : : xMedian = xMedian + dnum / 2;
    : : : : }
    : : : : for (int count = 0; count < lSize; ++count) {
    : : : : Double dd = (Double)lList.get(count);
    : : : : double dnum = dd.doubleValue();
    : : : : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
    : : : : }
    : : : : standardDeviation = standardDeviation / ( lSize - 1 );
    : : : : standardDeviation = Math.sqrt(standardDeviation);
    : : : :
    : : : : System.out.print("");
    : : : : System.out.println("Mean:" + xMean);
    : : : : System.out.println("Median:" + xMedian);
    : : : : System.out.println("Standard Deviation:" + standardDeviation);
    : : : : }
    : : : : }
    : : : :
    : : : : Please help me solve the problem.
    : : : :
    : : : :
    : : :
    : : :
    : :
    : :
    :
    :

  • hi,

    i guess, the program given below calcualtes the mean and standard deviation correctly, check out the formula for median, i could not find it.

    the main changes compared to ur code are;

    say if we enter 4 elements.

    Please enter a number (-1 to exit):
    44
    50
    38
    96
    -1 // this -1 should not be counted

    now lsize in ur program will contain 5 (because we have accepted 5 nums)

    so you should run the for loop from count=0 to count<4 ,
    that is (lsize -1).


    here is the modified code.


    and one small advice plzzzzzzzzz learn to align the code...

    i have just done this because, today i had no other work... :-)


    hope it helps



    --------------------------------------------------------
    import java.io.*;
    import java.util.*;
    import java.lang.*;

    public class SD2
    {


    public static void main(String arguments[])
    {


    double xMean = 0.0;
    double standardDeviation = 0.0;
    double xMedian = 0.0;

    int lSize;
    BufferedReader stdIn;
    StreamTokenizer text = null;

    String filename = null;
    LinkedList lList = new LinkedList();
    double number=-1;

    System.out.println("Please enter a number (-1 to exit): ");

    BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
    do
    {

    String input = null;
    try {
    input = r.readLine();
    number = Double.parseDouble(input);
    lList.add(new Double(number));
    }
    catch (IOException e)
    {
    e.printStackTrace();
    }
    } while (number != -1);

    lSize = lList.size();



    for (int count = 0; count < lSize-1; ++count)
    {
    Double dd = (Double)lList.get(count);

    double dnum = dd.doubleValue();

    xMean = xMean + dnum;
    }

    xMean = xMean / (lSize-1);


    for (int count = 0; count < lSize-1; ++count)
    {

    Double dd = (Double)lList.get(count);
    double dnum = dd.doubleValue();
    xMedian = xMedian + dnum / 2;
    }
    standardDeviation=0;

    for (int count = 0; count < lSize-1; ++count)
    {
    Double dd = (Double)lList.get(count);

    double dnum = dd.doubleValue();



    standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );


    }


    standardDeviation = standardDeviation / ( lSize - 2 );

    standardDeviation = Math.sqrt(standardDeviation);

    System.out.print("");
    System.out.println("Number of elements = "+(lSize-1));

    System.out.println("Mean:" + xMean);

    System.out.println("Median:" + xMedian);

    System.out.println("Standard Deviation:" + standardDeviation);
    }
    }





    --------------------------------------------------------







    : : Has anybody ever did a program like this?
    : :
    : : : Thanks, for the information. I thought I was using those formulas but I will try again.
    : : :
    : : : Hi,
    : : : :
    : : : : I guess the formulas , which you are using to calculate the standard deviation, mean and the median are wrong..
    : : : :
    : : : : you can refer to this link, in which u have a clear example
    : : : :
    : : : : http://www.ltcconline.net/greenl/courses/201/descstat/mean.htm
    : : : :
    : : : :
    : : : : hope this helps :)
    : : : :
    : : : :
    : : : :
    : : : :
    : : : : : Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
    : : : : : import java.io.*;
    : : : : : import java.util.*;
    : : : : : import java.lang.*;
    : : : : :
    : : : : : public class SD2 {
    : : : : : public static void main(String arguments[]) {
    : : : : :
    : : : : :
    : : : : : double xMean = 0.0;
    : : : : : double standardDeviation = 0.0;
    : : : : : double xMedian = 0.0;
    : : : : :
    : : : : : int lSize;
    : : : : : BufferedReader stdIn;
    : : : : : StreamTokenizer text = null;
    : : : : :
    : : : : : String filename = null;
    : : : : : LinkedList lList = new LinkedList();
    : : : : : double number=-1;
    : : : : :
    : : : : : System.out.println("Please enter a number (-1 to exit): ");
    : : : : :
    : : : : : BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
    : : : : : do {
    : : : : : String input = null;
    : : : : : try {
    : : : : : input = r.readLine();
    : : : : : number = Double.parseDouble(input);
    : : : : : lList.add(new Double(number));
    : : : : : } catch (IOException e) {
    : : : : : e.printStackTrace();
    : : : : : }
    : : : : : } while (number != -1);
    : : : : :
    : : : : : lSize = lList.size();
    : : : : :
    : : : : :
    : : : : :
    : : : : : for (int count = 0; count < lSize; ++count) {
    : : : : : Double dd = (Double)lList.get(count);
    : : : : : double dnum = dd.doubleValue();
    : : : : : xMean = xMean + dnum;
    : : : : : }
    : : : : : xMean = xMean / lSize;
    : : : : : for (int count = 0; count < lSize; ++count) {
    : : : : : Double dd = (Double)lList.get(count);
    : : : : : double dnum = dd.doubleValue();
    : : : : : xMedian = xMedian + dnum / 2;
    : : : : : }
    : : : : : for (int count = 0; count < lSize; ++count) {
    : : : : : Double dd = (Double)lList.get(count);
    : : : : : double dnum = dd.doubleValue();
    : : : : : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
    : : : : : }
    : : : : : standardDeviation = standardDeviation / ( lSize - 1 );
    : : : : : standardDeviation = Math.sqrt(standardDeviation);
    : : : : :
    : : : : : System.out.print("");
    : : : : : System.out.println("Mean:" + xMean);
    : : : : : System.out.println("Median:" + xMedian);
    : : : : : System.out.println("Standard Deviation:" + standardDeviation);
    : : : : : }
    : : : : : }
    : : : : :
    : : : : : Please help me solve the problem.
    : : : : :
    : : : : :
    : : : :
    : : : :
    : : :
    : : :
    : :
    : :
    :
    :

  • :hello;

    Do you have to use a LinkedList?

    I have some old code of mine that does what you want using an array.

    If your interested I'll see if I can find it.

    Good Luck

    Ken


    hi,
    :
    : i guess, the program given below calcualtes the mean and standard deviation correctly, check out the formula for median, i could not find it.
    :
    : the main changes compared to ur code are;
    :
    : say if we enter 4 elements.
    :
    : Please enter a number (-1 to exit):
    : 44
    : 50
    : 38
    : 96
    : -1 // this -1 should not be counted
    :
    : now lsize in ur program will contain 5 (because we have accepted 5 nums)
    :
    : so you should run the for loop from count=0 to count<4 ,
    : that is (lsize -1).
    :
    :
    : here is the modified code.
    :
    :
    : and one small advice plzzzzzzzzz learn to align the code...
    :
    : i have just done this because, today i had no other work... :-)
    :
    :
    : hope it helps
    :
    :
    :
    : --------------------------------------------------------
    : import java.io.*;
    : import java.util.*;
    : import java.lang.*;
    :
    : public class SD2
    : {
    :
    :
    : public static void main(String arguments[])
    : {
    :
    :
    : double xMean = 0.0;
    : double standardDeviation = 0.0;
    : double xMedian = 0.0;
    :
    : int lSize;
    : BufferedReader stdIn;
    : StreamTokenizer text = null;
    :
    : String filename = null;
    : LinkedList lList = new LinkedList();
    : double number=-1;
    :
    : System.out.println("Please enter a number (-1 to exit): ");
    :
    : BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
    : do
    : {
    :
    : String input = null;
    : try {
    : input = r.readLine();
    : number = Double.parseDouble(input);
    : lList.add(new Double(number));
    : }
    : catch (IOException e)
    : {
    : e.printStackTrace();
    : }
    : } while (number != -1);
    :
    : lSize = lList.size();
    :
    :
    :
    : for (int count = 0; count < lSize-1; ++count)
    : {
    : Double dd = (Double)lList.get(count);
    :
    : double dnum = dd.doubleValue();
    :
    : xMean = xMean + dnum;
    : }
    :
    : xMean = xMean / (lSize-1);
    :
    :
    : for (int count = 0; count < lSize-1; ++count)
    : {
    :
    : Double dd = (Double)lList.get(count);
    : double dnum = dd.doubleValue();
    : xMedian = xMedian + dnum / 2;
    : }
    : standardDeviation=0;
    :
    : for (int count = 0; count < lSize-1; ++count)
    : {
    : Double dd = (Double)lList.get(count);
    :
    : double dnum = dd.doubleValue();
    :
    :
    :
    : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
    :
    :
    : }
    :
    :
    : standardDeviation = standardDeviation / ( lSize - 2 );
    :
    : standardDeviation = Math.sqrt(standardDeviation);
    :
    : System.out.print("");
    : System.out.println("Number of elements = "+(lSize-1));
    :
    : System.out.println("Mean:" + xMean);
    :
    : System.out.println("Median:" + xMedian);
    :
    : System.out.println("Standard Deviation:" + standardDeviation);
    : }
    : }
    :
    :
    :
    :
    :
    : --------------------------------------------------------
    :
    :
    :
    :
    :
    :
    :
    : : : Has anybody ever did a program like this?
    : : :
    : : : : Thanks, for the information. I thought I was using those formulas but I will try again.
    : : : :
    : : : : Hi,
    : : : : :
    : : : : : I guess the formulas , which you are using to calculate the standard deviation, mean and the median are wrong..
    : : : : :
    : : : : : you can refer to this link, in which u have a clear example
    : : : : :
    : : : : : http://www.ltcconline.net/greenl/courses/201/descstat/mean.htm
    : : : : :
    : : : : :
    : : : : : hope this helps :)
    : : : : :
    : : : : :
    : : : : :
    : : : : :
    : : : : : : Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
    : : : : : : import java.io.*;
    : : : : : : import java.util.*;
    : : : : : : import java.lang.*;
    : : : : : :
    : : : : : : public class SD2 {
    : : : : : : public static void main(String arguments[]) {
    : : : : : :
    : : : : : :
    : : : : : : double xMean = 0.0;
    : : : : : : double standardDeviation = 0.0;
    : : : : : : double xMedian = 0.0;
    : : : : : :
    : : : : : : int lSize;
    : : : : : : BufferedReader stdIn;
    : : : : : : StreamTokenizer text = null;
    : : : : : :
    : : : : : : String filename = null;
    : : : : : : LinkedList lList = new LinkedList();
    : : : : : : double number=-1;
    : : : : : :
    : : : : : : System.out.println("Please enter a number (-1 to exit): ");
    : : : : : :
    : : : : : : BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
    : : : : : : do {
    : : : : : : String input = null;
    : : : : : : try {
    : : : : : : input = r.readLine();
    : : : : : : number = Double.parseDouble(input);
    : : : : : : lList.add(new Double(number));
    : : : : : : } catch (IOException e) {
    : : : : : : e.printStackTrace();
    : : : : : : }
    : : : : : : } while (number != -1);
    : : : : : :
    : : : : : : lSize = lList.size();
    : : : : : :
    : : : : : :
    : : : : : :
    : : : : : : for (int count = 0; count < lSize; ++count) {
    : : : : : : Double dd = (Double)lList.get(count);
    : : : : : : double dnum = dd.doubleValue();
    : : : : : : xMean = xMean + dnum;
    : : : : : : }
    : : : : : : xMean = xMean / lSize;
    : : : : : : for (int count = 0; count < lSize; ++count) {
    : : : : : : Double dd = (Double)lList.get(count);
    : : : : : : double dnum = dd.doubleValue();
    : : : : : : xMedian = xMedian + dnum / 2;
    : : : : : : }
    : : : : : : for (int count = 0; count < lSize; ++count) {
    : : : : : : Double dd = (Double)lList.get(count);
    : : : : : : double dnum = dd.doubleValue();
    : : : : : : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
    : : : : : : }
    : : : : : : standardDeviation = standardDeviation / ( lSize - 1 );
    : : : : : : standardDeviation = Math.sqrt(standardDeviation);
    : : : : : :
    : : : : : : System.out.print("");
    : : : : : : System.out.println("Mean:" + xMean);
    : : : : : : System.out.println("Median:" + xMedian);
    : : : : : : System.out.println("Standard Deviation:" + standardDeviation);
    : : : : : : }
    : : : : : : }
    : : : : : :
    : : : : : : Please help me solve the problem.
    : : : : : :
    : : : : : :
    : : : : :
    : : : : :
    : : : :
    : : : :
    : : :
    : : :
    : :
    : :
    :
    :

  • Hi,
    It does require a linked list but you can still show me what you have?
    Thanks for helping
    : :hello;
    :
    : Do you have to use a LinkedList?
    :
    : I have some old code of mine that does what you want using an array.
    :
    : If your interested I'll see if I can find it.
    :
    : Good Luck
    :
    : Ken
    :
    :
    : hi,
    : :
    : : i guess, the program given below calcualtes the mean and standard deviation correctly, check out the formula for median, i could not find it.
    : :
    : : the main changes compared to ur code are;
    : :
    : : say if we enter 4 elements.
    : :
    : : Please enter a number (-1 to exit):
    : : 44
    : : 50
    : : 38
    : : 96
    : : -1 // this -1 should not be counted
    : :
    : : now lsize in ur program will contain 5 (because we have accepted 5 nums)
    : :
    : : so you should run the for loop from count=0 to count<4 ,
    : : that is (lsize -1).
    : :
    : :
    : : here is the modified code.
    : :
    : :
    : : and one small advice plzzzzzzzzz learn to align the code...
    : :
    : : i have just done this because, today i had no other work... :-)
    : :
    : :
    : : hope it helps
    : :
    : :
    : :
    : : --------------------------------------------------------
    : : import java.io.*;
    : : import java.util.*;
    : : import java.lang.*;
    : :
    : : public class SD2
    : : {
    : :
    : :
    : : public static void main(String arguments[])
    : : {
    : :
    : :
    : : double xMean = 0.0;
    : : double standardDeviation = 0.0;
    : : double xMedian = 0.0;
    : :
    : : int lSize;
    : : BufferedReader stdIn;
    : : StreamTokenizer text = null;
    : :
    : : String filename = null;
    : : LinkedList lList = new LinkedList();
    : : double number=-1;
    : :
    : : System.out.println("Please enter a number (-1 to exit): ");
    : :
    : : BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
    : : do
    : : {
    : :
    : : String input = null;
    : : try {
    : : input = r.readLine();
    : : number = Double.parseDouble(input);
    : : lList.add(new Double(number));
    : : }
    : : catch (IOException e)
    : : {
    : : e.printStackTrace();
    : : }
    : : } while (number != -1);
    : :
    : : lSize = lList.size();
    : :
    : :
    : :
    : : for (int count = 0; count < lSize-1; ++count)
    : : {
    : : Double dd = (Double)lList.get(count);
    : :
    : : double dnum = dd.doubleValue();
    : :
    : : xMean = xMean + dnum;
    : : }
    : :
    : : xMean = xMean / (lSize-1);
    : :
    : :
    : : for (int count = 0; count < lSize-1; ++count)
    : : {
    : :
    : : Double dd = (Double)lList.get(count);
    : : double dnum = dd.doubleValue();
    : : xMedian = xMedian + dnum / 2;
    : : }
    : : standardDeviation=0;
    : :
    : : for (int count = 0; count < lSize-1; ++count)
    : : {
    : : Double dd = (Double)lList.get(count);
    : :
    : : double dnum = dd.doubleValue();
    : :
    : :
    : :
    : : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
    : :
    : :
    : : }
    : :
    : :
    : : standardDeviation = standardDeviation / ( lSize - 2 );
    : :
    : : standardDeviation = Math.sqrt(standardDeviation);
    : :
    : : System.out.print("");
    : : System.out.println("Number of elements = "+(lSize-1));
    : :
    : : System.out.println("Mean:" + xMean);
    : :
    : : System.out.println("Median:" + xMedian);
    : :
    : : System.out.println("Standard Deviation:" + standardDeviation);
    : : }
    : : }
    : :
    : :
    : :
    : :
    : :
    : : --------------------------------------------------------
    : :
    : :
    : :
    : :
    : :
    : :
    : :
    : : : : Has anybody ever did a program like this?
    : : : :
    : : : : : Thanks, for the information. I thought I was using those formulas but I will try again.
    : : : : :
    : : : : : Hi,
    : : : : : :
    : : : : : : I guess the formulas , which you are using to calculate the standard deviation, mean and the median are wrong..
    : : : : : :
    : : : : : : you can refer to this link, in which u have a clear example
    : : : : : :
    : : : : : : http://www.ltcconline.net/greenl/courses/201/descstat/mean.htm
    : : : : : :
    : : : : : :
    : : : : : : hope this helps :)
    : : : : : :
    : : : : : :
    : : : : : :
    : : : : : :
    : : : : : : : Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
    : : : : : : : import java.io.*;
    : : : : : : : import java.util.*;
    : : : : : : : import java.lang.*;
    : : : : : : :
    : : : : : : : public class SD2 {
    : : : : : : : public static void main(String arguments[]) {
    : : : : : : :
    : : : : : : :
    : : : : : : : double xMean = 0.0;
    : : : : : : : double standardDeviation = 0.0;
    : : : : : : : double xMedian = 0.0;
    : : : : : : :
    : : : : : : : int lSize;
    : : : : : : : BufferedReader stdIn;
    : : : : : : : StreamTokenizer text = null;
    : : : : : : :
    : : : : : : : String filename = null;
    : : : : : : : LinkedList lList = new LinkedList();
    : : : : : : : double number=-1;
    : : : : : : :
    : : : : : : : System.out.println("Please enter a number (-1 to exit): ");
    : : : : : : :
    : : : : : : : BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
    : : : : : : : do {
    : : : : : : : String input = null;
    : : : : : : : try {
    : : : : : : : input = r.readLine();
    : : : : : : : number = Double.parseDouble(input);
    : : : : : : : lList.add(new Double(number));
    : : : : : : : } catch (IOException e) {
    : : : : : : : e.printStackTrace();
    : : : : : : : }
    : : : : : : : } while (number != -1);
    : : : : : : :
    : : : : : : : lSize = lList.size();
    : : : : : : :
    : : : : : : :
    : : : : : : :
    : : : : : : : for (int count = 0; count < lSize; ++count) {
    : : : : : : : Double dd = (Double)lList.get(count);
    : : : : : : : double dnum = dd.doubleValue();
    : : : : : : : xMean = xMean + dnum;
    : : : : : : : }
    : : : : : : : xMean = xMean / lSize;
    : : : : : : : for (int count = 0; count < lSize; ++count) {
    : : : : : : : Double dd = (Double)lList.get(count);
    : : : : : : : double dnum = dd.doubleValue();
    : : : : : : : xMedian = xMedian + dnum / 2;
    : : : : : : : }
    : : : : : : : for (int count = 0; count < lSize; ++count) {
    : : : : : : : Double dd = (Double)lList.get(count);
    : : : : : : : double dnum = dd.doubleValue();
    : : : : : : : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
    : : : : : : : }
    : : : : : : : standardDeviation = standardDeviation / ( lSize - 1 );
    : : : : : : : standardDeviation = Math.sqrt(standardDeviation);
    : : : : : : :
    : : : : : : : System.out.print("");
    : : : : : : : System.out.println("Mean:" + xMean);
    : : : : : : : System.out.println("Median:" + xMedian);
    : : : : : : : System.out.println("Standard Deviation:" + standardDeviation);
    : : : : : : : }
    : : : : : : : }
    : : : : : : :
    : : : : : : : Please help me solve the problem.
    : : : : : : :
    : : : : : : :
    : : : : : :
    : : : : : :
    : : : : :
    : : : : :
    : : : :
    : : : :
    : : :
    : : :
    : :
    : :
    :
    :

  • :Here you go....

    I hacked this out of a stat class I wrote for a business forecasting project I developed.

    The final project reads data from a file. I used an array to test.The final project has Exception handling and input checking, I left that part out.
    [code]
    import java.util.*;
    import java.lang.Math;


    public class Stats{


    public static void main(String args[]){

    int numbers [] = {120,54,110,112,117,89,136,114,98,124};
    Stats stats = new Stats();

    stats.list(numbers);
    stats.mean(numbers);
    stats.stdDeviation(numbers);
    stats.median(numbers);



    }

    public void list(int numbers[]){
    Arrays.sort(numbers);
    for(int i = 0; i<numbers.length; i++){
    System.out.println(numbers[i]);
    }
    }
    public double mean(int numbers[]){

    double total = 0;
    for(int i = 0; i < numbers.length; i++){
    total = total + numbers[i];
    }
    double cmean = total/numbers.length;
    System.out.println("Mean: "+(total/numbers.length));
    return cmean;
    }

    public void median(int numbers[]){
    Arrays.sort(numbers);
    int medianIndex = numbers.length / 2;
    int count = numbers.length;
    int nextIndex = medianIndex-1;
    int avg = numbers[medianIndex]+numbers[nextIndex];
    //System.out.println("Average index: " + avg);
    if(count % 2 == 0){

    System.out.println("Median: "+ (numbers[medianIndex]+numbers[nextIndex])/2);
    }
    if(count % 2 != 0) {
    System.out.println("Median: "+numbers[medianIndex]);
    }
    }

    public void stdDeviation(int numbers[]){
    Stats stats = new Stats();
    double avg = stats.mean(numbers);
    double dev = 0;
    double sqdev = 0;
    double sum = 0;
    for(int i = 0; i < numbers.length; i++){
    sqdev = (avg - numbers[i])*(avg - numbers[i]);
    dev = sqdev + dev;
    }
    System.out.println("Standard Deviation: " + Math.sqrt((dev/(numbers.length-1))));
    }


    }
    [/code]

    I think this will compile and run I never know when I cut and paste.

    A LinkedList is too much for my feeble mind to deal with.

    Hopefully this will be of some help.

    Ken


    Hi,
    : It does require a linked list but you can still show me what you have?
    : Thanks for helping
    : : :hello;
    : :
    : : Do you have to use a LinkedList?
    : :
    : : I have some old code of mine that does what you want using an array.
    : :
    : : If your interested I'll see if I can find it.
    : :
    : : Good Luck
    : :
    : : Ken
    : :
    : :
    : : hi,
    : : :
    : : : i guess, the program given below calcualtes the mean and standard deviation correctly, check out the formula for median, i could not find it.
    : : :
    : : : the main changes compared to ur code are;
    : : :
    : : : say if we enter 4 elements.
    : : :
    : : : Please enter a number (-1 to exit):
    : : : 44
    : : : 50
    : : : 38
    : : : 96
    : : : -1 // this -1 should not be counted
    : : :
    : : : now lsize in ur program will contain 5 (because we have accepted 5 nums)
    : : :
    : : : so you should run the for loop from count=0 to count<4 ,
    : : : that is (lsize -1).
    : : :
    : : :
    : : : here is the modified code.
    : : :
    : : :
    : : : and one small advice plzzzzzzzzz learn to align the code...
    : : :
    : : : i have just done this because, today i had no other work... :-)
    : : :
    : : :
    : : : hope it helps
    : : :
    : : :
    : : :
    : : : --------------------------------------------------------
    : : : import java.io.*;
    : : : import java.util.*;
    : : : import java.lang.*;
    : : :
    : : : public class SD2
    : : : {
    : : :
    : : :
    : : : public static void main(String arguments[])
    : : : {
    : : :
    : : :
    : : : double xMean = 0.0;
    : : : double standardDeviation = 0.0;
    : : : double xMedian = 0.0;
    : : :
    : : : int lSize;
    : : : BufferedReader stdIn;
    : : : StreamTokenizer text = null;
    : : :
    : : : String filename = null;
    : : : LinkedList lList = new LinkedList();
    : : : double number=-1;
    : : :
    : : : System.out.println("Please enter a number (-1 to exit): ");
    : : :
    : : : BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
    : : : do
    : : : {
    : : :
    : : : String input = null;
    : : : try {
    : : : input = r.readLine();
    : : : number = Double.parseDouble(input);
    : : : lList.add(new Double(number));
    : : : }
    : : : catch (IOException e)
    : : : {
    : : : e.printStackTrace();
    : : : }
    : : : } while (number != -1);
    : : :
    : : : lSize = lList.size();
    : : :
    : : :
    : : :
    : : : for (int count = 0; count < lSize-1; ++count)
    : : : {
    : : : Double dd = (Double)lList.get(count);
    : : :
    : : : double dnum = dd.doubleValue();
    : : :
    : : : xMean = xMean + dnum;
    : : : }
    : : :
    : : : xMean = xMean / (lSize-1);
    : : :
    : : :
    : : : for (int count = 0; count < lSize-1; ++count)
    : : : {
    : : :
    : : : Double dd = (Double)lList.get(count);
    : : : double dnum = dd.doubleValue();
    : : : xMedian = xMedian + dnum / 2;
    : : : }
    : : : standardDeviation=0;
    : : :
    : : : for (int count = 0; count < lSize-1; ++count)
    : : : {
    : : : Double dd = (Double)lList.get(count);
    : : :
    : : : double dnum = dd.doubleValue();
    : : :
    : : :
    : : :
    : : : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
    : : :
    : : :
    : : : }
    : : :
    : : :
    : : : standardDeviation = standardDeviation / ( lSize - 2 );
    : : :
    : : : standardDeviation = Math.sqrt(standardDeviation);
    : : :
    : : : System.out.print("");
    : : : System.out.println("Number of elements = "+(lSize-1));
    : : :
    : : : System.out.println("Mean:" + xMean);
    : : :
    : : : System.out.println("Median:" + xMedian);
    : : :
    : : : System.out.println("Standard Deviation:" + standardDeviation);
    : : : }
    : : : }
    : : :
    : : :
    : : :
    : : :
    : : :
    : : : --------------------------------------------------------
    : : :
    : : :
    : : :
    : : :
    : : :
    : : :
    : : :
    : : : : : Has anybody ever did a program like this?
    : : : : :
    : : : : : : Thanks, for the information. I thought I was using those formulas but I will try again.
    : : : : : :
    : : : : : : Hi,
    : : : : : : :
    : : : : : : : I guess the formulas , which you are using to calculate the standard deviation, mean and the median are wrong..
    : : : : : : :
    : : : : : : : you can refer to this link, in which u have a clear example
    : : : : : : :
    : : : : : : : http://www.ltcconline.net/greenl/courses/201/descstat/mean.htm
    : : : : : : :
    : : : : : : :
    : : : : : : : hope this helps :)
    : : : : : : :
    : : : : : : :
    : : : : : : :
    : : : : : : :
    : : : : : : : : Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
    : : : : : : : : import java.io.*;
    : : : : : : : : import java.util.*;
    : : : : : : : : import java.lang.*;
    : : : : : : : :
    : : : : : : : : public class SD2 {
    : : : : : : : : public static void main(String arguments[]) {
    : : : : : : : :
    : : : : : : : :
    : : : : : : : : double xMean = 0.0;
    : : : : : : : : double standardDeviation = 0.0;
    : : : : : : : : double xMedian = 0.0;
    : : : : : : : :
    : : : : : : : : int lSize;
    : : : : : : : : BufferedReader stdIn;
    : : : : : : : : StreamTokenizer text = null;
    : : : : : : : :
    : : : : : : : : String filename = null;
    : : : : : : : : LinkedList lList = new LinkedList();
    : : : : : : : : double number=-1;
    : : : : : : : :
    : : : : : : : : System.out.println("Please enter a number (-1 to exit): ");
    : : : : : : : :
    : : : : : : : : BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
    : : : : : : : : do {
    : : : : : : : : String input = null;
    : : : : : : : : try {
    : : : : : : : : input = r.readLine();
    : : : : : : : : number = Double.parseDouble(input);
    : : : : : : : : lList.add(new Double(number));
    : : : : : : : : } catch (IOException e) {
    : : : : : : : : e.printStackTrace();
    : : : : : : : : }
    : : : : : : : : } while (number != -1);
    : : : : : : : :
    : : : : : : : : lSize = lList.size();
    : : : : : : : :
    : : : : : : : :
    : : : : : : : :
    : : : : : : : : for (int count = 0; count < lSize; ++count) {
    : : : : : : : : Double dd = (Double)lList.get(count);
    : : : : : : : : double dnum = dd.doubleValue();
    : : : : : : : : xMean = xMean + dnum;
    : : : : : : : : }
    : : : : : : : : xMean = xMean / lSize;
    : : : : : : : : for (int count = 0; count < lSize; ++count) {
    : : : : : : : : Double dd = (Double)lList.get(count);
    : : : : : : : : double dnum = dd.doubleValue();
    : : : : : : : : xMedian = xMedian + dnum / 2;
    : : : : : : : : }
    : : : : : : : : for (int count = 0; count < lSize; ++count) {
    : : : : : : : : Double dd = (Double)lList.get(count);
    : : : : : : : : double dnum = dd.doubleValue();
    : : : : : : : : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
    : : : : : : : : }
    : : : : : : : : standardDeviation = standardDeviation / ( lSize - 1 );
    : : : : : : : : standardDeviation = Math.sqrt(standardDeviation);
    : : : : : : : :
    : : : : : : : : System.out.print("");
    : : : : : : : : System.out.println("Mean:" + xMean);
    : : : : : : : : System.out.println("Median:" + xMedian);
    : : : : : : : : System.out.println("Standard Deviation:" + standardDeviation);
    : : : : : : : : }
    : : : : : : : : }
    : : : : : : : :
    : : : : : : : : Please help me solve the problem.
    : : : : : : : :
    : : : : : : : :
    : : : : : : :
    : : : : : : :
    : : : : : :
    : : : : : :
    : : : : :
    : : : : :
    : : : :
    : : : :
    : : :
    : : :
    : :
    : :
    :
    :

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories