【问题标题】:How to generate random true/false result in Anylogic如何在 Anylogic 中生成随机真/假结果
【发布时间】:2022-01-06 12:42:25
【问题描述】:

我是任何逻辑的新手。我想生成随机真假结果来控制选择输出中的参数。

我在源代码中使用了 if else 条件


if(randomTrue(0.25)){
    if(randomTrue(0.5)){
        agent.isOnlineRezerve = true;
    }else { 
        agent.isOnlineRezerve = false;
    }
}else{
    agent.isOnlineRezerve = false;
}

我的源输出条件是

agent.isOnlineRezerve

每次我运行它时,它都会给我 128 分,1000 分是真的,其余的都是假的

我每次都想得到一个 128 以外的数字,但我做不到。如果您能提供帮助,我会很高兴。

【问题讨论】:

    标签: anylogic


    【解决方案1】:

    AnyLogic 对随机数生成器使用固定种子,因此独立运行会产生相同的结果。切换到随机种子:

    设置随机数生成器种子

    1. 在“项目”视图中,选择您当前正在使用的实验。

    2. 转到“属性”视图的“随机性”部分。

    3. 在随机数生成组按钮中:

    • 要设置随机种子,请选择随机种子(唯一实验)选项。

    • 要设置固定种子,请选择固定种子(可重复实验)选项 > 并在种子值编辑框中输入种子值。

    来自https://anylogic.help/anylogic/stochastic/random-number-generator.html

    【讨论】:

    • 我花了 2 个小时试图找出两个项目之间的差异。非常感谢你救了我。
    • 很高兴为您提供帮助!一般来说,伪随机数生成器是这样的:它们需要一个唯一的种子;否则它们会在独立运行中产生相同的序列。
    【解决方案2】:

    这个问题的另一个答案是使用该函数的第二个参数,以便使用您自己的随机数生成器和您选择的种子:

    randomTrue(0.5,new Random())
    

    如果您想使用自己的种子进行个人计算

    randomTrue(0.5,new Random(33))
    

    【讨论】:

      猜你喜欢
      • 2013-11-09
      • 2013-10-06
      • 2012-02-11
      • 1970-01-01
      • 2017-08-30
      • 2010-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多