2017-01-28 7 views
0

Я пытаюсь сделать свою первую ПРО с помощью NETLOGO. Я хотел бы легко показать, как работают выборы.NETLOGO - опция с определенной вероятностью

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

Поэтому я бы хотел, чтобы они двигались, и изменение p-цвета патча в них перемещается с вероятностью. Например, в 2012 году молодые люди голосуют (простым способом) 30% социальных (цвет 136), 30% либеральных (цвет 97), 20% крайне правых (цвет 104) и 10% крайних-левых (красный).

Итак, я хотел бы, чтобы в моем коде вводилась вероятность того, что черепахи перейдут на патчи и изменят цвет.

Это интересная часть моего кода:

to chose-color-young 

ask jeunes 

[if pcolor = white [set pcolor one-of [136 97 104 15]]] 

end 

Я хотел бы сделать что-то подобное 136 с вероятностью = 0,3; 97 с вероятностью = 0,3; 104 с вероятностью = 0,20 и 15 с вероятностью = 0,10.

+0

Возможный дубликат [Netlogo: присвоить переменную с использованием вероятностей] (http://stackoverflow.com/questions/41901313/netlogo-assign-variable-using-probabilities) – Alan

ответ

1

rnd extension делает именно то, что вам нужно:

let probs [[136 0.3] [97 0.3] [104 0.20] [15 0.10]] 
ask jeunes [ 
    if pcolor = white [ 
    set pcolor first rnd:weighted-one-of-list probs last 
    ] 
] 

См this other answer за более подробной информацией о продлении rnd.