2016-03-02 97 views
1

我做代理與隨機浮色聲明彩色報告

ask turtles [set color random-float 100 ] 

我得到的色號,如2134.5和23.67。這可以。然而,我的問題是如何計算特定類別顏色的頻率(例如:213.45:5倍)和顏色總數。我需要一個記者。我知道如何列出顏色:

to-report color-turtles 
    report [color] of turtles 
end 

但我不知道如何算他們。

編輯:而不是,

回答

2

首先,做科學時,總是使用點作爲小數分隔符。

其次,你需要說出你的意思是「特定類別」。如果你確實是指具體的(在你的例子中,213.45),那麼答案是每個類別出現一次。 (否則隨機浮動有什麼問題。)所以你真正需要做的是直方圖你的數據,你指定的箱子。不幸的是,NetLogo沒有構建這個功能。請參閱https://github.com/NetLogo/NetLogo/issues/367

下面是我該如何做的。建立一個記錄程序,將每種顏色放入一個類別並報告類別。 (簡單方法將舍入爲一個整數。)每次遇到類別時,使用表擴展名將計數加1。

編輯:

如果你已經知道的顏色,你可以通過使用

to-report countColor [#color] 
    report count (turtles with [color = #color]) 
end 

例如獲得任何顏色的計數,

to-report color-count 
    let _colors remove-duplicates ([color] of turtles) 
    let _cts map [countColor ?] _colors 
    report (map list _colors _cts) 
end 
+0

是的,這是不很有幫助。代理商通過不同的程序複製顏色。一些代理在勾號x處將具有相同的浮點數。我需要知道有多少代理有顏色x。 我需要確切的顏色編號和頻率。舍入在這裏沒用。 因此,例如一組4個代理將有314.23。我需要知道確切的數字。 – Newguy

+0

那麼,如果你確定*他們會分享*完全相同的浮點數,那麼你仍然可以使用相同的方法。浮動可以是表格中的關鍵。 但是,通常,您不應該使用浮點數進行等式比較。見http://floating-point-gui.de/ – Alan

+0

是的,我確定。他們在開始時得到一個號碼,這個號碼不會改變。他們從相互複製的數字:那些更多的東西。我需要知道誰會複製多少次作爲一種影響力的形式。 – Newguy