2015-09-05 73 views
1

我有一個關於Netlogo的問題。我有兩個品種的烏龜,品種1和品種2。 Breed2有一個變量叫theta。首先,隨機數量的品種1的海龜變成品種2;品種2然後theta隨機設置。後來,另一個隨機數的品種1成爲品種2,他們也將隨機設置θ。構建一組變量

我的兩個問題是:

1)我如何才能確保只有那些改變他們的品種在第二輪​​品種變化的海龜集的THETA變量?我不希望那些在第一輪中改變的人在改變後立即失去爲他們設置的theta變量。

2.)有沒有一種方法可以構建一組到目前爲止設置的所有theta變量?我希望我的品種2以後根據迄今爲止設定的theta的最大值做出決定。

謝謝!

回答

2

你應該問分開兩個單獨的問題,但...

  1. 有很多方法可以做到這一點。示例1:如果您始終更新爲theta的非零值,則只需測試一個零並僅更改一個零。示例2:將can-change-theta屬性添加到品種2,並始終將其初始化爲true,但在重置theta後將其更改爲false。示例3:將新的breed2s收集到一個代理程序集(或必要時的列表)中,並僅爲這些海龜更改theta。

  2. 如果你真的想要最大值,你不需要所有的值。只需添加一個全局變量max-theta並在每次更新theta時進行更新。如果您真的想要全部,請添加一個全局變量並將其初始化爲空列表;在每次更新theta屬性時附加到此列表,並使用max在您希望的時候拉出最大值。