我需要編寫一些代碼,可以計算出一個變量,顯示消費者爲他的筆記本電腦購買組件的偏好。偏好通過稅收(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