2013-11-19 4 views
1

Я пытаюсь создать память для каждой черепахи (у меня две породы). В зависимости от цвета породы 1, с которой взаимодействует породы 2, черепаха добавляет к памяти 0 или 1. В итоге я суммирую список, чтобы создать определенные вероятности. Вот процедура инициализации памяти:NetLogo: сумма баллов

ask turtles [ 
let j 0 
    set memory [] 
    while [j < N] ; N is the size of memory 
    [ 
     let actions (list random 2) 
     set memory fput actions memory 
     set j j + 1 
    ] 
    ] 

Здесь процедура обновления памяти:

let actions [] 
    ifelse [color] of target = red [set actions (list target 1)][set actions (list target 0)] 
    ask self [ 
     set memory fput actions memory 
     set memory remove-item N memory 
     ] 
    ifelse [color] of self = red [set actions (list self 1)][set actions (list self 0)] 
    ask target [ 
     set memory fput actions memory 
     set memory remove-item N memory 
     ] 
] 

В конце концов, я пытаюсь создать репортер с командой таких как:

report sum (memory/N) ; N is the size of memory 

появляется памяти для всегда равна нулю. Что я здесь делаю неправильно?

ответ

1

Я думаю, что вы имеете в виду:

(sum memory)/N 

или просто:

mean memory 

И если вы хотите взглянуть на воспоминания случайной черепахи, чтобы увидеть, если она выглядит, как вы ожидаете:

[memory] of one-of turtles 

или посмотреть все воспоминания о черепахах:

[memory] of turtles 

Если у всех черепах есть память 0, тогда я думаю, что проблема в коде, который вы не показываете. Код, который вы отправили, выглядит хорошо для меня.

+0

Правильно я имел в виду (сумма памяти)/N, но процедура памяти не работает. Память отображается как ноль. – chermen

+1

Я могу только повторить, что проблема не в коде, который вы отправили; это должно быть где-то в другом месте. –

Смежные вопросы