寻找一个逻辑来保持一个范围内的分数

时间:2017-07-24 19:37:32

标签: math netlogo fractions agent-based-modeling tax

我需要编写一些可以计算变量的代码,该变量显示消费者为其笔记本电脑购买组件的偏好。优惠更改为税(T)以及价格对人们购买的重要性(PriceI)。我需要同时包含TPriceI来找到购买笔记本电脑的人的意愿(W)。滑块中的税费变化范围从50 Cent$6。我希望将变量W保持在1 to 2的范围内,其中1是税时的默认值,最小值为50 cent

所以2 variablesW有影响:

50<T<600
0.6 < PriceI < 9

因为我想要1<W<2,我认为如果我首先将所有数据除以它们的最大值来归一化所有数据,那么为了找到1到2之间的分数,我将分子设为小于4,分母小于2,希望结果在1到2之间:

    to setup-WCalculator
ask consumers [
 set PP ((PriceI / 9) * 2)
  set TT ((T / 600) * 4) 
  set W TT / PP 
]

end

然而,Netlogo使PPTT都为零,而它们应该是0.15的小值!找到W的逻辑是否有意义? 谢谢,

1 个答案:

答案 0 :(得分:3)

归一化通常使用诸如

之类的公式来完成
TT  = (T - Tmin) / (Tmax - Tmin)

或在这里

TT = (T - 50) / (600 - 50)

这给出了0到1之间的归一化值,因为T的范围在50到600之间。如果你想让TTT的范围在1和x之间,其中x是&gt; 1,然后你可以设置

TTT = 1.0 + TT * (x - 1.0)

所以

TTT = 1.0 + TT * (4.0 - 1.0) = 1.0 + TT * 3.0

将为您提供1到4之间的值。

HTH