在 java 中保持 运行 个值的平均值
Keeping a running average of values in java
我正在尝试计算通过重复函数调用给出的值的平均值。
实际上 Bluej 允许我对数字进行评分,但如果我想再次输入它会取代之前的数字,我想存储起来,然后显示平均值。
我不知道该怎么做
这是代码的一部分:
public int getRate() // here i put an int number
{
return this.rate;
}
public void setRate(int rate) // here i change it but i think i don't need it
{
this.rate = rate;
}
我不能使用奇怪或复杂的命令,因为我只能使用这种类型的命令,例如 get/set 和数组列表。
这是一项学校作业。
谢谢
保持平均输入的一种简单方法是跟踪:
- 目前收到的所有输入的总和。
- 您收到的输入数。
每次调用 setRate
更新汇率时,您都会添加总和并增加计数。您还需要一个特殊情况,用于尚未添加费率的情况,以避免被零除:
private int ratesSum = 0;
private int rateCount = 0;
public int getRate()
{
return this.rate;
}
public void setRate(int rate)
{
this.rate = rate;
this.ratesSum += rate;
this.rateCount++;
}
// Gets the average of all rates so far, or returns zero if no rates
// have been set yet.
public float getAverageRate()
{
// Do not divide by zero
if (rateCount == 0) return 0;
return ((float)ratesSum) / ((float)rateCount);
}
我正在尝试计算通过重复函数调用给出的值的平均值。
实际上 Bluej 允许我对数字进行评分,但如果我想再次输入它会取代之前的数字,我想存储起来,然后显示平均值。
我不知道该怎么做
这是代码的一部分:
public int getRate() // here i put an int number
{
return this.rate;
}
public void setRate(int rate) // here i change it but i think i don't need it
{
this.rate = rate;
}
我不能使用奇怪或复杂的命令,因为我只能使用这种类型的命令,例如 get/set 和数组列表。
这是一项学校作业。
谢谢
保持平均输入的一种简单方法是跟踪:
- 目前收到的所有输入的总和。
- 您收到的输入数。
每次调用 setRate
更新汇率时,您都会添加总和并增加计数。您还需要一个特殊情况,用于尚未添加费率的情况,以避免被零除:
private int ratesSum = 0;
private int rateCount = 0;
public int getRate()
{
return this.rate;
}
public void setRate(int rate)
{
this.rate = rate;
this.ratesSum += rate;
this.rateCount++;
}
// Gets the average of all rates so far, or returns zero if no rates
// have been set yet.
public float getAverageRate()
{
// Do not divide by zero
if (rateCount == 0) return 0;
return ((float)ratesSum) / ((float)rateCount);
}