getTeamSize: returns the number of runners that are currently on the team.

getmostReliableRunner: takes an int representing the gender and an int representing the race parameters and returns the most reliable runner of that gender in that particular race type based on the standard deviation.

getStandardDeviation: Need to be able to get the Standard Deviation of a set of numbers that are stored in a file. (Dont really know how to call that file either.. )

PLEASE HELP I AM KIND OF LOST ON THESE 3 METHODS!!!!!

THANKYOU!

## 10 Replies - 9608 Views - Last Post: 26 October 2010 - 03:49 PM

### #1

# Having problems coming up with these methods! Please HELP!

Posted 25 October 2010 - 11:08 AM

##
**Replies To:** Having problems coming up with these methods! Please HELP!

### #2

## Re: Having problems coming up with these methods! Please HELP!

Posted 25 October 2010 - 05:04 PM

Quote

getTeamSize: returns the number of runners that are currently on the team.

This is probably associate with your Team class, which has an instance variable representing the Team size or the number of runners. Your getter method should simply return that variable.

Quote

getmostReliableRunner: takes an int representing the gender and an int representing the race parameters and returns the most reliable runner of that gender in that particular race type based on the standard deviation.

If I had to guess, there is a Tournament/Competition class that you are using which has some sort of Collection associating Teams with the Races they are in. The int params you pass are to be used to help narrow down which Race and Runners to look at. See the documentation for the Collection being used for more information on which methods to invoke.

Quote

getStandardDeviation: Need to be able to get the Standard Deviation of a set of numbers that are stored in a file. (Dont really know how to call that file either.. )

There are plenty of formulas to calculate Standard Deviation on the internet. As for File I/O, check out the DIC Tutorials Section.

Hopefully this will help get you started some. We are happy to help more, provided you show us your good faith efforts at implementing solutions to these problems. Don't forget to specifically describe your problems or errors.

### #3

## Re: Having problems coming up with these methods! Please HELP!

Posted 26 October 2010 - 12:08 PM

Ok so far i have got this..... Will you look over this and maybe make corrections where they are needed....

Thank you so much you are awesome!!!!

Thank you so much you are awesome!!!!

public double getStandardDeviation(int raceTypeIn) { double average = 0.0; double total = 0.0; double deviation; double sumOfSquares = 0.0; double variance; if (raceTypeIn == METER100) { for (int i = 0; i <time100.length; i++) { total += time100[i]; average = total / time100.length; } } else if (raceTypeIn == METER200) { for (int i = 0; i < time200.length; i++) { variance = sumOfSquares / (time200.length - 1); // variance is deviatio squared. deviation = Math.sqrt(variance); // deviation = Standard Deviation. } } else { total = -1.0; } return total; } public Runner getMostReliableRunner(int genderIn, int raceTypeIn) { gender = genderIn; raceType = raceTypeIn; } public void loadFromFile(String fileNameIn) throws IOException { File f = new File(fileNameIn); String name; int gender; Scanner scan = new Scanner(f); String line = scan.nextLine(); String[] splitLine = line.split(", "); double[] times = new double[5]; Runner r; int counter = 0; if (runners[0] != null) { for (int i = 0; i < runners.length; i++) { runners[i] = null; } } if (scan.hasNext()) { name = splitLine[0]; if (splitLine[1] == "f") { gender = Runner.FEMALE; } else { gender = Runner.MALE; } r = new Runner(name, gender); for (int i = 0; i < 5; i++) { times[i] = Double.parseDouble(splitLine[2 + i]); } r.setTimes(Runner.METER100, times); for (int i = 0; i < 5; i++) { times[i] = Double.parseDouble(splitLine[7 + i]); } r.setTimes(Runner.METER200, times); runners[counter] = r; counter++; } }

**Edited by**macosxnerd101: Please, .### #4

## Re: Having problems coming up with these methods! Please HELP!

Posted 26 October 2010 - 12:57 PM

Does it output the answers as you've written out by hand? Because, you know, when doing math in Java, you should do a couple of sample tests by hand to verify the correct answer.

### #5

## Re: Having problems coming up with these methods! Please HELP!

Posted 26 October 2010 - 01:13 PM

Yes i have and it seems to be ok.....

### #6

## Re: Having problems coming up with these methods! Please HELP!

Posted 26 October 2010 - 01:22 PM

In this method, you need to return a Runner. You simply modify the instance variables to match the values of the parameters. You need to perform a search on the given Race, find the matching Runner, and return it.

public Runner getMostReliableRunner(int genderIn, int raceTypeIn)

### #7

## Re: Having problems coming up with these methods! Please HELP!

Posted 26 October 2010 - 01:30 PM

ok i got this..... can one of you maybe help me re write it into a simpler form....

less complex....

Thanks.

less complex....

Thanks.

public Runner getMostReliableRunner(int genderIn, int raceTypeIn) { Runner mostReliable; double deviation = 100.0; if (runners[0] != null) { mostReliable = runners[0]; for (int i = 0; i < runners.length; i++) { if (runners[i].getGender() == genderIn) { if (runners[i].getStandardDeviation(raceTypeIn) < deviation) { mostReliable = runners[i]; deviation = runners[i].getStandardDeviation(raceTypeIn); } } } return mostReliable; } else { return null; } }

**Edited by**macosxnerd101: Added code tags. Please use them in the future.### #8

## Re: Having problems coming up with these methods! Please HELP!

Posted 26 October 2010 - 02:37 PM

No need to calculate standard deviation twice. Store the result of the first call into a variable, and use that variable to compare with.

int tempDev = runners[i].getStandardDeviation(raceTypeIn); if(tempDev < deviation){ mostReliable = runners[i]; deviation = tempDev; }

### #9

## Re: Having problems coming up with these methods! Please HELP!

Posted 26 October 2010 - 03:00 PM

Dude, you do not know how much i appreciate this help.... all this is due at 10 tonight so i will be doing this until then....

Have any suggestions for this method?

public Runner selectCompetitor(int genderIn,

int raceTypeIn, double targetTime)

{

Runner bestCompetitor;

double time = 0.0;

if (ran[0] != null)

{

bestCompetitor = ran[0];

for (int i = 0; i < ran.length; i++)

{

if (ran[i].getGender() == genderIn)

{

if (ran[i].getAverageTime(raceTypeIn) < targetTime

&& ran[i].getAverageTime(raceTypeIn) > time)

{

bestCompetitor = ran[i];

time = ran[i].getAverageTime(raceTypeIn);

}

}

}

return bestCompetitor;

}

else

{

return null;

}

}

Have any suggestions for this method?

public Runner selectCompetitor(int genderIn,

int raceTypeIn, double targetTime)

{

Runner bestCompetitor;

double time = 0.0;

if (ran[0] != null)

{

bestCompetitor = ran[0];

for (int i = 0; i < ran.length; i++)

{

if (ran[i].getGender() == genderIn)

{

if (ran[i].getAverageTime(raceTypeIn) < targetTime

&& ran[i].getAverageTime(raceTypeIn) > time)

{

bestCompetitor = ran[i];

time = ran[i].getAverageTime(raceTypeIn);

}

}

}

return bestCompetitor;

}

else

{

return null;

}

}

### #10

## Re: Having problems coming up with these methods! Please HELP!

Posted 26 October 2010 - 03:21 PM

Yes- please use code tags as I have asked multiple times. It makes it much easier for us to read your code. You can use the EDIT button on your post to add them.

Code tags: .

Code tags: .

### #11

## Re: Having problems coming up with these methods! Please HELP!

Posted 26 October 2010 - 03:49 PM

This is my last method!!!!!

If there is any way to put this into a much simpler form and a way to maybe shorten it up can you please help!!!

THIS IS IT !!!! THANKS!!!

I also could not find the edit button..... my brain is also fried because I have been doing this for almost 9 hrs now, I am very sorry for that.

didnt mean to post the getMostReliable runner method again just ignore that one!!

If there is any way to put this into a much simpler form and a way to maybe shorten it up can you please help!!!

THIS IS IT !!!! THANKS!!!

I also could not find the edit button..... my brain is also fried because I have been doing this for almost 9 hrs now, I am very sorry for that.

public void loadFromFile(String fileNameIn) throws IOException { File f = new File(fileNameIn); String name; int gender; double[] times = new double[5]; Runner r; int counter = 0; if (f.exists()) { Scanner scan = new Scanner(f); if (runners[0] != null) { for (int i = 0; i < runners.length; i++) { runners[i] = null; } } teamName = scan.nextLine(); while (scan.hasNext()) { runners[counter] = new Runner("", 0); String line = scan.nextLine(); String[] splitLine = line.split(","); name = splitLine[0]; runners[counter].setName(name); if (splitLine[1].equals("f")) { gender = Runner.FEMALE; } else { gender = Runner.MALE; } r = new Runner(name, gender); for (int i = 0; i < 5; i++) { times[i] = Double.parseDouble(splitLine[2 + i]); } r.setTimes(Runner.METER100, times); for (int i = 0; i < 5; i++) { times[i] = Double.parseDouble(splitLine[7 + i]); } r.setTimes(Runner.METER200, times); runners[counter] = r; counter++; } } } /** *Gets the most reliable runner based on deviation. [email protected] genderIn Gender of runner [email protected] raceTypeIn Race type [email protected] mostReliable Most reliable runner */ public Runner getMostReliableRunner(int genderIn, int raceTypeIn) { Runner mostReliable; double deviation = 100.0; if (runners[0] != null) { mostReliable = runners[0]; for (int i = 0; i < runners.length; i++) { if (runners[i].getGender() == genderIn) { if (runners[i].getStandardDeviation(raceTypeIn) < deviation) { mostReliable = runners[i]; deviation = runners[i].getStandardDeviation(raceTypeIn); } } } return mostReliable; } else { return null; } }

didnt mean to post the getMostReliable runner method again just ignore that one!!

Page 1 of 1