#netlogo #agent-based-modeling
#netlogo #моделирование на основе агентов
Вопрос:
Я пытаюсь подсчитать количество черепашек типа «покупатель», у которых определенный избыток (переменная turtle) больше или равен нулю, а цена (другая переменная turtle) больше, чем текущая цена turtle (уже указана в локальной переменной myprice…хотя может быть более прямой способ ввести это)
let countup count buyers with ([surplus >= 0] and [price > myprice])
NetLogo возвращает
Здесь ожидалось значение TRUE / FALSE, а не список или блок.
let countup count buyers with (surplus >= 0 and price > myprice)
ВОЗВРАТ
С ожидал, что этот ввод будет блоком TRUE / FALSE, но вместо этого получил TRUE / FALSE
Ответ №1:
Закрыть! Вы ищете:
let countput count buyers with [ surplus >= 0 and price > myprice ]
with
это отчет, который принимает два аргумента, например, так
<turtleset> with <report block>
где блок репортера представляет собой фрагмент кода, окруженный [ ]
, который приведет либо к true, либо к false. В целом [ ]
это способ netlogo группировать код, чтобы вы могли делать с ним что-то особенное, например, чтобы каждый агент в наборе агентов запускал его. Надеюсь, это поможет!
Кроме того, я предполагаю, что у вас есть что-то вроде let myprice price
, скажем, в строке над этой. Вы можете объединить эти строки следующим образом (не утверждая, что этот код является правильным способом сделать это, просто хотел показать другой вариант):
let countput count buyers with [ surplus >= 0 and price > [ price ] of myself ]
Проверьте документы для (с очень неудачным названием) myself
.
Комментарии:
1. Потрясающе! Фактически, основываясь на вашем совете, я смог выполнить вложенное условное
let countdown count buyers with [ (surplus < 0 and price > [ price ] of myself) or (price > [ price ] of myself)]