• ベストアンサー

rand関数

rand関数のつかいかたを教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.4

randは「0からRAND_MAXまで」の間で擬似乱数を生成します。 よって、実際に返される値が「欲しい値の範囲に分布している」という保証はプログラムで行う必要があります。 欲しい値の範囲が0~RAND_MAXの場合は#3の回答のように除余をとることで簡単に対応できますが、欲しい値の範囲が0~RAND_MAXの範囲を超える場合は少々てこずるかもしれません。 また、一般的なrandの実装では上位ビットに比べて下位ビットはランダムでないことが多いようです。 一般的には (rand() >> 4) % 10 // 0~10の間の乱数 などのように下位ビットを切り捨てて利用することが多いと思います。 これはrandの実装によって不要な場合があります。

その他の回答 (3)

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.3

以下の参考URLにサンプルコード付きで解説されています。 #しかしMSDNはいつのまに反応速度がこんなに遅くなったんだろう? 0から9までの間の乱数がほしいのであれば、  rand() の部分を  rand() % 10 とすれば得られます。

参考URL:
http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_crt_rand.asp
回答No.2

Visual C++ のドキュメントには以下のように書かれています。 # マニュアルお持ちではないのですか? int rand( void ); rand 関数は、0 ~ RAND_MAX の範囲内の整数型の疑似乱数を返します。 srand 関数を使用して疑似乱数ジェネレータを初期化してから、rand 関数を呼び出してください。

  • twopence
  • ベストアンサー率42% (242/563)
回答No.1

参考URLをご覧ください。 参考になるかもしれません。 http://www3.wind.ne.jp/web/excel/rank.html

参考URL:
http://www3.wind.ne.jp/web/excel/rank.html

関連するQ&A