分配计数时建立平均值
Establishing an average when counts are portioned
问题
我有一个数组,它是 class 道路的 属性,它定义了道路上允许的车辆类型,并提供了每种类型对交通的贡献的近似部分:
[[bus,.2],[smallCar,.6],[bigCar,.2]]
我需要计算道路上遇到的汽车的平均长度,给定交通比例。 (这需要在 class 的其他地方进行一些基本计算。)
我试过的:
我想不出更好的方法来做到这一点。在我的解决方案中,保真度随着汽车数量的增加而变化。这似乎是一种非常缓慢、笨拙的方法,而且是不正确的。要改进的函数名为 averageVehicleLaneSpace。
一个非常配对但工作的版本更大 classes:
road = function(){};
road.prototype.averageVehicleLaneSpace = function(){
var sum = 0;
var fakeCarCount = 10000;
for( var i = 0; i< this.allowedVehicleTypes.length; i++){
var type = this.allowedVehicleTypes[i][0];
var perc = this.allowedVehicleTypes[i][1];
for(n = 0; n<=fakeCarCount*perc; n++){
sum += vehicle[type].laneSpace;
}
}
return sum/fakeCarCount;
}
//define vehicles
var vehicle = {
bus:{
laneSpace:14
},
smallCar:{
laneSpace:4
},
bigCar:{
laneSpace:4.5
}
};
var t = new road();
t.allowedVehicleTypes = [["bus",.1],["smallCar",.3],["bigCar",.6]];
alert(t.averageVehicleLaneSpace());
Fiddle:
这个Fiddle就是上面那个充满希望的例子:The fiddle.
平均值是每种车型 ratio * laneSpace
的总和。所以计算平均值很简单:
road.prototype.averageVehicleLaneSpace = function(){
var avg = 0;
for (var i = 0; i < this.allowedVehicleTypes.length; i++) {
var type = this.allowedVehicleTypes[i][0];
var perc = this.allowedVehicleTypes[i][1];
avg += perc * vehicle[type].laneSpace;
}
return avg;
}
问题
我有一个数组,它是 class 道路的 属性,它定义了道路上允许的车辆类型,并提供了每种类型对交通的贡献的近似部分:
[[bus,.2],[smallCar,.6],[bigCar,.2]]
我需要计算道路上遇到的汽车的平均长度,给定交通比例。 (这需要在 class 的其他地方进行一些基本计算。)
我试过的:
我想不出更好的方法来做到这一点。在我的解决方案中,保真度随着汽车数量的增加而变化。这似乎是一种非常缓慢、笨拙的方法,而且是不正确的。要改进的函数名为 averageVehicleLaneSpace。
一个非常配对但工作的版本更大 classes:
road = function(){};
road.prototype.averageVehicleLaneSpace = function(){
var sum = 0;
var fakeCarCount = 10000;
for( var i = 0; i< this.allowedVehicleTypes.length; i++){
var type = this.allowedVehicleTypes[i][0];
var perc = this.allowedVehicleTypes[i][1];
for(n = 0; n<=fakeCarCount*perc; n++){
sum += vehicle[type].laneSpace;
}
}
return sum/fakeCarCount;
}
//define vehicles
var vehicle = {
bus:{
laneSpace:14
},
smallCar:{
laneSpace:4
},
bigCar:{
laneSpace:4.5
}
};
var t = new road();
t.allowedVehicleTypes = [["bus",.1],["smallCar",.3],["bigCar",.6]];
alert(t.averageVehicleLaneSpace());
Fiddle:
这个Fiddle就是上面那个充满希望的例子:The fiddle.
平均值是每种车型 ratio * laneSpace
的总和。所以计算平均值很简单:
road.prototype.averageVehicleLaneSpace = function(){
var avg = 0;
for (var i = 0; i < this.allowedVehicleTypes.length; i++) {
var type = this.allowedVehicleTypes[i][0];
var perc = this.allowedVehicleTypes[i][1];
avg += perc * vehicle[type].laneSpace;
}
return avg;
}