寻找将分数保持在某个范围内的逻辑

问题描述 投票:0回答:1

我需要编写一些代码来计算一个变量,该变量显示消费者为其笔记本电脑购买组件的偏好。偏好会因税收 (

T
) 和价格对人们购买的重要性 (
PriceI
) 的影响而发生变化。我需要同时包含
T
PriceI
来确定此人购买笔记本电脑的意愿 (
W
)。滑块中的税收变化范围从
50 Cent
$6
。我想将变量
W
保持在
1 to 2
的范围内,其中
1
是税收处于默认状态时的最小值,即
50 cent

所以有

2 variables
W
有影响:

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 使

PP
TT
都为零,而它们应该是像 0.15 这样的小值!求W的逻辑有意义吗? 谢谢,

math netlogo fractions agent-based-modeling
1个回答
3
投票

归一化通常使用诸如

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

或这里

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

当 T 范围在 50 到 600 之间时,这给出了 0 到 1 之间的归一化值。如果您希望 TTT 范围在 1 到 x 之间,其中 x > 1,那么您可以设置

TTT = 1.0 + TT * (x - 1.0)

那么

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

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

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.