Как вернуть среднюю мощность всех объектов, соответствующих указанному году? Ява

Привет, застрял на выяснении математического кодирования того, как найти среднюю мощность в лошадиных силах определенного года? Если кто-нибудь может помочь мне закодировать это, это было бы здорово. Я также могу предоставить дополнительную информацию об ArrayList или Class, если хотите, просто прокомментируйте.

Вот требования метода:

public double getAverageHorsepowerOfYear (int modelYear)

  • возвращает среднюю мощность всех объектов Lamborghini, соответствующих параметру modelYear, указанному в качестве параметра.
  • 0.0 возвращается, если ни один автомобиль Lamborghini не соответствует указанному модельному году.
  • значение, возвращаемое этим методом, ДОЛЖНО быть десятичным числом (10/3 = 3,3333334, а не 3).

Вот мой метод:

public double getAverageHorsepowerOfYear(int modelYear)
{
    double avgHP = 0.0;


    for(Lamborghini l : inventory){
        if(l.getModelYear() == modelYear){
            avgHP = avgHP/l.getHorsepower();
            avgHP++;
        } 
    }
    return avgHP;
}

У меня такое чувство, что это неправильно, поэтому, если кто-нибудь может мне помочь с этим, я был бы очень признателен. Заранее спасибо.


person Tre    schedule 25.11.2015    source источник
comment
Пожалуйста, найдите пример программы, в которой она дает неправильный результат, если вы считаете, что это неправильно.   -  person djechlin    schedule 25.11.2015
comment
Вы знаете формулу для нахождения среднего, верно?   -  person tobias_k    schedule 25.11.2015
comment
@tobias_k нет, пожалуйста, просветите меня, поэтому я задаю вопрос, и в нем говорится, что я застрял в математике, пожалуйста, прочитайте вопрос полностью.   -  person Tre    schedule 25.11.2015
comment
гугл твой друг. этот сайт предназначен для помощи в программировании, а не для базовой помощи по математике   -  person redFIVE    schedule 25.11.2015
comment
@djechlin это причина, по которой я задаю вопрос, чтобы узнать, может ли кто-нибудь подтвердить, правильно ли это !!! пожалуйста, прочитайте вопрос полностью, прежде чем комментировать!   -  person Tre    schedule 25.11.2015
comment
@Tre я сделал. Пожалуйста, прочитайте правила публикации StackOverflow перед публикацией :)   -  person djechlin    schedule 25.11.2015
comment
@redFIVE Я спросил, знает ли кто-нибудь, как закодировать математику для этого   -  person Tre    schedule 25.11.2015
comment
Вы даже не удосужились изучить себя? Явно нет. stackoverflow.com/questions/7008189/calculate-average-in-java< /а>   -  person redFIVE    schedule 26.11.2015
comment
@redFIVE эй, спасибо, я действительно долго исследовал это, но ничего не мог найти, это было мое последнее средство, и я получил ответ ниже, это был просто вопрос, не знаю, почему все дошли до полицейского переполнения стека, как холод. Некоторые люди, которые пишут здесь, просто новички, и причина, по которой они задают вопросы, состоит в том, чтобы получить помощь, а не попасться на троллинг!!! Так что всем просто необходимо расслабиться. Не все являются профессиональными кодерами. Иначе зачем бы были такие сайты!   -  person Tre    schedule 26.11.2015
comment
Я буквально погуглил, вычислив среднюю Java, и первыми результатами были вопросы, которые уже были заданы и на которые были даны ответы на этом самом сайте. Вы серьезно пытаетесь сказать мне, что исследовали это и не смогли придумать это? Если вы думаете, что это троллинг, то реальный мир вас разжует и выплюнет.   -  person redFIVE    schedule 26.11.2015
comment
@redFIVE серьезно, нет! Нет, но я обязательно свяжусь с вами, прежде чем выполнять поиск в Google. Спасибо еще раз   -  person Tre    schedule 26.11.2015


Ответы (3)


Вам нужно рассчитать общее количество HP и разделить его на количество автомобилей.

public double getAverageHorsepowerOfYear(int modelYear)
{double TotalHP = 0.0;
double avgHP = 0.0;
int count = 0

for(Lamborghini l : inventory){
    if(l.getModelYear() == modelYear){
        TotalHP = TotalHP + l.getHorsepower();
        count++;
    } 
}
avgHP = TotalHP/count;
return avgHP;
}
person Maertin    schedule 25.11.2015

Ваш расчет среднего значения неверен. Вы должны найти сумму лошадиных сил, а затем разделить ее на общее количество автомобилей, соответствующих вашему критерию. Что вы делаете вместо этого... делите скользящее среднее значение на новый HP, а затем прибавляете к нему единицу?

Похоже на присваивания, так что вот некоторый псевдокод:

public double getAverageHorsepowerOfYear(int modelYear) {
    sum = 0.0
    count = 0
    for each car:
        if criterion matches:
            add HP to sum
            increment count
    return sum / count
}
person tobias_k    schedule 25.11.2015

  • public double getAverageHorsepowerOfYear(int modelYear){ Iterator it = inventory.iterator(); двойное общее количество HP = 0; количество счетчиков = 0;

       while (it.hasNext()){
           Lamborghini hpList = it.next();
    
           if (hpList.getModelYear() == modelYear) {
               totalHP += hpList.getHorsepower();
              count++;
           }
    
       }
       return (totalHP/count);
    

    }

person codetech    schedule 02.12.2015