2016-03-02 91 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