一定範囲の乱数を生成する汎用式

1262 ワード

rand()%(b-a)によって生成される乱数の範囲が[0, b-a-1]であることを知るには、以下の実装が容易であることを知っておく必要があります.
  • は、(a, b)
    rand()%(b-a-1)+(a+1)
  • を生成する.
  • は、[a, b)
    rand()%(b-a)+a
  • を生成する.
  • は、(a, b]
    rand()%(b-a)+(a+1)
  • を生成する.
  • は、[a, b]
    rand()%(b-a+1)+a
  • を生成する.
    References
    [1]C/C++で乱数が発生する(rand,srand用法)