我需要编写一些代码,可以计算出一个变量,显示消费者为他的笔记本电脑购买组件的偏好。偏好通过税收(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的逻辑是否合理? 谢谢,
由于使用的NetLogo浮点所有数值和计算,我不看你怎么可以从获得零'((PriceI/9)* 2'除非'PriceI'确实为零。你检查过吗? – Charles
正如您所讨论的那样,问题不在于netlogo处理数字的方式。这些变量也是在程序中给出的值。我已经定义了一个程序'setup-WCalculator',而在另一个程序中,我使用'W'。看起来它不是这样工作的,因为它不能进入该过程,所以默认零使它们为零。我所做的工作就是我在使用'W'的其他程序之前调用了'setup-WCalculator'。它现在似乎在工作。我没有注意到这种正常化你提到的方式,并使用它,使结果得到改善。谢谢。 – user710