【问题标题】:Netlogo - random choiceNetlogo - 随机选择
【发布时间】:2023-01-04 07:45:40
【问题描述】:

我是编程新手,非常感谢您的帮助。 在这个模型中,我想创建一个公司,如果满足特定条件,它可以随机选择 btw 2 个选项。最好的方法是什么? 我试过了,但没有用。

    if profit < 0 [
set color red
let choice random 2 (
  choice = 0 [ move-to min-one-of patches [costs]] 
  choice = 1 [ set price (price + 1) ])
]

谢谢您的帮助!

【问题讨论】:

    标签: random netlogo agent


    【解决方案1】:

    看起来您需要 IFELSE 声明。与IF 一样,IFELSE 评估一个测试,一个应该产生 TRUE 或 FALSE 的表达式。 IF 在测试结果为 TRUE 时运行代码块。 IFELSE 有两个代码块。第一个将在测试为真时运行,第二个将在测试为假时运行。

    如果需要,您也可以使用两个 IF 语句。

    两个 IF(顺序 IF)

    let choice random 2
    if (choice = 0) [ action-1 ]
    if (choice = 1) [ action-2 ]
    

    如果别的

    let choice random 2
    ifelse (choice = 0)
    [ action-1 ]
    [ action-2 ]
    

    注意,这里我们只需要一个测试:(choice = 0),因为只有两个选项。如果 choice 不为 0,则它必须为 1。

    IFELSE(多于两个选项)

    如果有两个以上的选项,那么我们可以使用另一种形式的 ifelse 来让我们使用多个测试。此表格必须完全包裹在 ( 和 )

    let choice random 4
    ( ifelse
     ( choice = 1 ) [ action-1 ]
     ( choice = 2 ) [ action-2 ]
     ( choice = 3 ) [ action-3 ]
                    [ action-4 ] ;; default
    )
    

    【讨论】:

      猜你喜欢
      • 2012-03-27
      • 1970-01-01
      • 2023-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-30
      • 1970-01-01
      • 2017-07-14
      相关资源
      最近更新 更多