randrand

よく知られていると完全に再現可能なアルゴリズムを使用して擬似乱数を生成します。Generates a pseudorandom number by using a well-known and fully-reproducible algorithm. この関数のプログラムでより安全なバージョンは使用できません。参照してくださいrand_sします。A more programmatically secure version of this function is available; see rand_s. によって生成された番号rand暗号的に安全ではありません。Numbers generated by rand are not cryptographically secure. 乱数の生成のより安全な暗号を使用してrand_sで宣言された関数や、C++標準ライブラリで<ランダム >します。For more cryptographically secure random number generation, use rand_s or the functions declared in the C++ Standard Library in <random>.

構文Syntax

int rand( void );

戻り値Return Value

rand上記疑似乱数を返します。rand returns a pseudorandom number, as described above. エラーの戻り値はありません。There is no error return.

RemarksRemarks

Rand関数では、擬似乱数の整数を返しますに 0 の範囲のRAND_MAX (32767)。The rand function returns a pseudorandom integer in the range 0 to RAND_MAX (32767). 使用して、 srand関数を呼び出す前に疑似乱数ジェネレーターのシードrandします。Use the srand function to seed the pseudorandom-number generator before calling rand.

Rand関数は、よく知られているシーケンスを生成し、暗号化関数として使用するために適切ではありません。The rand function generates a well-known sequence and is not appropriate for use as a cryptographic function. 乱数の生成のより安全な暗号を使用してrand_sで宣言された関数や、C++標準ライブラリで<ランダム >します。For more cryptographically secure random number generation, use rand_s or the functions declared in the C++ Standard Library in <random>. に関する問題についてrandとどのように<ランダム > このビデオ」を参照してください、これらの欠点を補い、 rand 有害と見なされますします。For information about what's wrong with rand and how <random> addresses these shortcomings, see this video entitled rand Considered Harmful.

必要条件Requirements

ルーチンによって返される値Routine 必須ヘッダーRequired header
randrand <stdlib.h><stdlib.h>

互換性の詳細については、「 互換性」を参照してください。For additional compatibility information, see Compatibility.

Example

// crt_rand.c
// This program seeds the random-number generator
// with the time, then exercises the rand function.
//

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void SimpleRandDemo( int n )
{
   // Print n random numbers.
   int i;
   for( i = 0; i < n; i++ )
      printf( "  %6d\n", rand() );
}

void RangedRandDemo( int range_min, int range_max, int n )
{
   // Generate random numbers in the half-closed interval
   // [range_min, range_max). In other words,
   // range_min <= random number < range_max
   int i;
   for ( i = 0; i < n; i++ )
   {
      int u = (double)rand() / (RAND_MAX + 1) * (range_max - range_min)
            + range_min;
      printf( "  %6d\n", u);
   }
}

int main( void )
{
   // Seed the random-number generator with the current time so that
   // the numbers will be different every time we run.
   srand( (unsigned)time( NULL ) );

   SimpleRandDemo( 10 );
   printf("\n");
   RangedRandDemo( -100, 100, 10 );
}
22036
18330
11651
27464
18093
3284
11785
14686
11447
11285

   74
   48
   27
   65
   96
   64
   -5
  -42
  -55
   66

関連項目See also

浮動小数点サポートFloating-Point Support
srandsrand
rand_srand_s