C/C++

乱数

更新日:

擬似乱数

ゲームなどランダムな要素が必要なときは乱数を使います。
しかし、コンピュータでは完全に不規則な値を生成することはできません。
そこで、コンピュータでは擬似乱数という限りなく乱数に近い値を生成します。

擬似乱数の生成の仕方

擬似乱数を生成するにはrand()関数を用います。
rand()関数は0からRAND_MAXまでの不規則な整数値を発生させます。
RAND_MAXはライブラリで設定された擬似乱数の最大値です。

rand()関数には引数はありません。

int r = rand();


ただし、これを何度実行しても値が同じになるはずです。
これは擬似乱数を生成するとき同じ発生系列を用いているためです。

擬似乱数の発生系列を変更するにはsrand()関数を使います。

srand(【発生系列】);


srand()関数を使わずにrand()関数を呼び出すと

srand(1);


と同じことになります。

実行毎に発生系列を変更する方法として代表的なのは実行したときの時刻を用いる方法です。

srand(time(NULL));


以下は擬似乱数生成の例です。
rand()関数、srand()関数にはstdlib.h、time()関数にはtime.hが必要です。

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

int main(void)
{
    int i, r;
    srand(time(NULL));

    for(i = 0; i < 10; i++)
    {
        printf("%d\n", rand());
    }
    return 0;
}



-C/C++

Copyright© C言語/C++入門講座  ツナサーモン , 2019 All Rights Reserved Powered by AFFINGER5.