Как запросить конкретную долю черепах с минимальной долей стоимости?

Я создал фирмы (черепахи) в отрасли (мире), которые либо производят дома (фирмы, расположенные дома, расположенные > ycor), либо выводят свое производство за границу (оффшорные фирмы, расположенные ‹ ycor). Я дал им фирмы-собственные, называемые офшорами? на который отвечают либо истинным, либо ложным. При настройке они также получают собственный уровень автоматизации фирмы, который случайным образом принимает значения от 0 до 1.

Теперь я хотел бы иметь 30 % из них с самым низким уровнем автоматизации фирмы, чтобы перевести производство на ‹ 0 лет или и сообщить: офшорные? = правда

breed [ firms firm ]

firms-own [
 firm-level-of-automation   ;; initially random between 0 and 1
 offshored?   ;; true or false
]

to go
tick
ask firms [
 set firm-level-of-automation 0 + random-float 1

 if min [ firm-level-of-automation ] of firms [
   count firms * 0.3 firms [ setxy random-xcor random-between ( -10 ) -1   ;; distribute randomly abroad in an area < 0 ycor
   set offshored? true ] ] ]
end

Я не знаю, как лучше всего сочетать команды if и min. Какие-либо предложения?


person user11277648    schedule 24.04.2019    source источник


Ответы (1)


Не уверен, почему за вас проголосовали против, это кажется разумным вопросом. В любом случае, нет необходимости смешивать min и if, вы можете просто ask 30% черепах с более низкими значениями делать то, что хотите. Найдите в словаре примитив min-n-of, вам понадобится что-то вроде:

ask min-n-of (0.3 * count firms) firms [firm-level-of-automation]
[ setxy random-xcor random-between ( -10 ) -1 
  set offshored? true
]
person JenB    schedule 24.04.2019
comment
Спасибо, что хоть как-то ответили. Ваши предложения сработали, большое спасибо! - person user11277648; 25.04.2019