Получить количество черепашек с комбинацией значений

#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)]