我试图得到几个数字的加权平均值。基本上我有:
Price - 134.42
Quantity - 15236545
价格和数量少则一两对,多则五十或六十对。我需要计算出价格的加权平均值。基本上,加权平均值应该对像这样的配对给予很小的权重
Price - 100000000.00
Quantity - 3
以及上面的一对。
我目前的公式是:
((price)(quantity) + (price)(quantity) + ...)/totalQuantity
到目前为止,我已经完成了:
double optimalPrice = 0;
int totalQuantity = 0;
double rolling = 0;
System.out.println(rolling);
Iterator it = orders.entrySet().iterator();
while(it.hasNext()) {
System.out.println("inside");
Map.Entry order = (Map.Entry)it.next();
double price = (Double)order.getKey();
int quantity = (Integer)order.getValue();
System.out.println(price + " " + quantity);
rolling += price * quantity;
totalQuantity += quantity;
System.out.println(rolling);
}
System.out.println(rolling);
return rolling/totalQuantity;
问题是我很快将“滚动”变量最大化。
我怎样才能真正得到我的加权平均值?