NetLo go: Neet для установки значения переменной в случайное число в диапазоне - PullRequest
1 голос
/ 19 февраля 2020

Уважаемый NetLo go Сообщество,

Я хочу установить значение переменной в диапазоне от -1 до 1. Я пробовал следующий код, но безуспешно.

to xyz
[
set probability-of-wom compute-wom [-1 1]
if probability-wom > 0 [...]
]
end

to-report compute-wom -1 1
  report -1 + random-float (1 - -1)
end

probablity-wom в этом случае является глобальной переменной. Цените вашу поддержку заранее. Спасибо.

С уважением, Shreesha

1 Ответ

1 голос
/ 19 февраля 2020

Shreesha

Допустим, вы хотите сгенерировать случайное число между lower и upper. Тогда ваш compute-wom будет

to-report compute-wom [lower upper]
  report upper - random-float (upper - lower)
end

В вашем случае вы бы

set probability-of-wom compute-wom -1 1

Но пару комментариев. Во-первых, здесь вы генерируете случайное число между двумя пределами (как подсказывает ваш заголовок), поэтому называть его вероятностью может ввести в заблуждение тот, кто читает ваш код. Вероятности обычно находятся в диапазоне от нуля до единицы. Если вы действительно хотите что-то сделать с вероятностью 50%, вы можете просто сказать

if random-float 1 >= 0.5 [...]

Во-вторых, репортерам, как правило, следует принимать переменные аргументы, если они вообще должны иметь аргументы. Обратите внимание, что поскольку вы жестко кодируете -1 и 1 в теле своего to-report compute-wom репортера, передача их в качестве аргументов избыточна и, возможно, вводит в заблуждение любого, кто читает ваш код.

Надеюсь, это полезно, Чарльз

...