NetLogo: Расчет процента

Я пытаюсь рассчитать процентную вероятность того, что событие произойдет. Я попытался реализовать это, создав два глобальных параметра («успех» и «всего»). Всякий раз, когда событие происходит, переменные «успех» и «всего» увеличиваются, а когда событие не происходит (вместо этого происходит другое), увеличивается только «всего».

Итак, чтобы получить процентную вероятность того, что это произойдет, мне нужно разделить переменную «успех» на «всего» и умножить на 100. Я также хочу отобразить это значение на мониторе в пользовательском интерфейсе, поэтому я создал другую переменную «процент». ", чтобы назначить вычисление, чтобы его можно было объявить в мониторе.

Я создал процедуру, называемую вычислением, и вызвал ее в процедуре go, однако я не уверен в правильном синтаксисе, чтобы получить то, что мне нужно. Я добавил некоторый псевдокод, так как считаю, что он должен работать

to calculate
 set percentage (count success)/(count total)
end

person algorhythm    schedule 15.04.2014    source источник


Ответы (1)


Вы действительно близки. count подсчитывает количество агентов в наборе агентов. Поскольку success и total — это просто числа, вам это не нужно. Основное выражение, которое вы ищете, это 100 * success / total. Далее, на самом деле нет необходимости в глобальной переменной percentage. Вместо этого вы можете просто сделать репортер:

to-report percent-success
  report 100 * success / total
end

Затем в поле «репортер» монитора вы просто поместите percent-success. Это поле на самом деле может даже принимать выражения генератора отчетов, так что вы могли бы поместить 100 * success / total прямо туда, хотя использование описанной выше процедуры генератора отчетов немного чище. Кроме того, вы, вероятно, захотите установить поле «Десятичные разряды» на что-то меньшее.

person Bryan Head    schedule 15.04.2014