乱数生成

  • NetLogoで対応している乱数は
    1. random: 一様分布 (integer)
    2. random-float: 一様分布 (float)
      一様分布は0からの範囲であり、minも設定したいならちょっと工夫が必要
    3. random-normal: 正規分布
    4. random-poisson: ポアソン分布
    5. random-gamma: ガンマ分布
    6. random-exponential: 指数分布
  • しかし、ベータ分布 (Beta Distribution)は対応していない。いろんな場面で使われる分布だと思うが、ないのが不思議
  • 以下のようなレポーターを作っておけばベータ分布から乱数生成が可能になる
    to-report rngBeta [alpha beta]
      let temp1 random-gamma alpha 1
      let temp2random-gamma beta 1
      report (temp1 / (temp1 + temp2))
    end
  • 使用法はrngBeta 2 2のようにする。(Beta(2, 2)から生成する場合)