2013-12-02 6 views
1

Я хочу иметь if if else else else структуру else в netlogo, но кажется, что на данный момент он не работает.if elseif elseif else in netlogo

ifelse random 100 < 68 [ set HBB-Genes "A,A" ];;68% 
     [ifelse random 100 < 2 [set HBB-Genes "S,S"] ;;2% 
     [ifelse random 100 < 15 [set HBB-Genes "A,A"];;15% 
     [set HBB-Genes "A,A"] ;;15% 


     ]] 

Я хотел бы иметь 68% шанс встречающегося поставленных HBB-Гены с «А, А», а следующим с 2% вероятностью встречающихся и так далее. Если кто-то имеет опыт работы с netlogo и может помочь ему, он будет много апробирован. Благодарю.

+0

«кажется, что на данный момент он не работает» - появилось ли сообщение об ошибке? если да, то что это было? что вы подразумеваете под «это не работает»? –

ответ

5

Вы только хотите выбрать одно случайное число, а не несколько. Вы можете использовать let для хранения случайного числа, чтобы вы могли обратиться к нему позже. Таким образом:

let chance random 100 
ifelse chance < 68 
    [ set HBB-Genes "A,A" ] 
    [ ifelse chance < 70 
     [ set HBB-Genes "S,S" ] 
     [ ifelse chance < 85 
      ... 

И так далее.

1

Это может быть сделано следующим образом, если утверждения иначе следуют, если утверждения получили оставшуюся часть вероятности возникновения.

if geneNumber <= 68 
     [ 
     set HBB-Genes "A,A" 
     set color blue 
     ] 

     if (geneNumber > 68) and (geneNumber <= 83) 
     [ 
     set HBB-Genes "A,S" 
      set color green 
     ] 

     if (geneNumber > 83) and geneNumber <= 98 
     [ 
     set HBB-Genes "S,A" 
      set color green 
     ] 
     if geneNumber > 98 
     [ 
     set HBB-Genes "S,S" 
     set color red 
     ] 
+0

Это тоже работает. –

Смежные вопросы