2017-06-11 35 views
0

目前,我正在構建一個輿論動態模型,並希望模型在某個全局變量global-participation-rate對於X個蜱數量保持不變時自動停止。我可能應該包括像Netlogo:停止模型,當全局變量的X值爲常量

if stop-ticking? [stop] 

在我的去程序。該報告看起來像這樣:

to-report stop-ticking?  
ifelse (??) = ??  [report true] [report false] 
end 

我應該用什麼代碼來檢查是否全球進行了一定的蜱保持不變?

回答

2

最簡單的方法是添加一個新的全局來保持計數。例如,(縮寫global-participation-rategpr):

globals [gpr ct-gpr] 

to update-gpr 
    let old-gpr gpr ;store old value 
    set gpr get-gpr ;compute new value 
    ;increment or reset the counter: 
    set ct-gpr ifelse-value (gpr != old-gpr) [1] [1 + ct-gpr] 
end 
+0

這正是我所需要的。謝謝! – ELC

1

您需要一個全局變量,用於參與率或總轉化率等。您擴散過程之後然後,你做這樣的事情let new-adopters <calculation>if-else new-adopters = total-adopters [stop] [set total-adopters new-adopters]

如果你需要一個以上的時間點比較,那麼你需要創建一個列表,而不是一個簡單的值和新值添加到列表的末尾並檢查列表的末尾是否全部是相同的數字。

+0

你怎麼過蜱量創建某個變量的值的列表?你能否舉一個例子來檢查一個變量的值是否與過去的50次一樣?我有點迷失在這一個。謝謝! – ELC

+0

您將當前值添加到列表中的每個勾號 – JenB