讓我們建立一個簡單的例子,其中每個龜使得在每個替隨機角度稍微向右轉,並存儲這些角度的歷史列表:
turtles-own [ history ]
to setup
clear-all
create-turtles 3 [
set history [] ; initialize history to an empty list
]
reset-ticks
end
to go
ask turtles [
let angle random 5
right angle
; add the angle of the most recent turn
; at the end of the list
set history lput angle history
if length history > 10 [
; remove the first item from the list
set history but-first history
]
forward 0.1
]
tick
end
我不想要一個類似於單元格列表的列表,除非有一些簡單的方法可以將數學運算應用於我不知道的列表中的每個項目。
我不知道你是什麼意思的「一個缺點列表」,但像我們這裏建立的一個簡單的列表是目前爲止你可以使用的最好的東西,如果你想要做的數學。
要應用操作的每個項目,使用map
。然後你可以使用像sum
或mean
這樣的功能來操作整個列表。例如:
to do-math
ask turtles [
let doubled-history map [ a -> a * 2 ] history
show history
show doubled-history
show mean doubled-history
]
end
(注意,這裏使用的NetLogo 6.0.1語法)。
讓我們來看看一個示範:
observer> setup repeat 5 [ go ] do-math
(turtle 2): [4 3 2 1 2]
(turtle 2): [8 6 4 2 4]
(turtle 2): 4.8
(turtle 1): [4 0 1 1 4]
(turtle 1): [8 0 2 2 8]
(turtle 1): 4
(turtle 0): [2 0 4 1 0]
(turtle 0): [4 0 8 2 0]
(turtle 0): 2.8
包括你已經寫了一些代碼,並說明不工作。 –