ランダム関数は非常に簡単であり、唯一:
RAND()
この関数は、0から32767の間の整数を返します。(32767は、おそらくリストの範囲を知って、この番号を覚えておく必要はありません)
のリコールを使用する前に参照し、<stdlib.h>に含まれ、ヘッダーファイル内の関数を。
【簡易試験]
在这#include <stdio.h>
#include <stdlib.h>
int main()
{
int r;
for(int i=0; i<10; i++)
{
r = rand();
printf("%d\n", r);
}
return 0;
}里插入代码片
コピー
実行後、出力10は、ランダムな数字を見ることができます。
[ランダム関数指定された範囲]
実際には、我々は多くの場合、ランダム関数指定した範囲を生成する必要があり、我々は通常、残りを使用する方法を見つけます。0と9の間の乱数を生成し、例えば、単に残りの任意の数を生成するための乱数を10で割ることができます。残りのオペランドの記号は%で、我々はこれを行うことができます:
R =ランド()%10。
見ることができる前のテストプログラムを実行した後修飾、得られた数が10未満です。
あなたが求めるならば6から1の間は何ですか?
R =ランド()%6 + 1。
彼らの範囲修正する必要性[32767、0]乱数の範囲である様々な計算によって生成されるランダム関数の範囲の種類に関係なく
ランダムシードを]
数字がランダムに生成されていますが、しかし、数字の列が生成された各時間は同じです:テストの数を行い、我々は問題を発見しました。この問題を解決するために、我々は、使用する必要がある「ランダムシードを。」(たびに乱数が固定されていることを意味し、プロ試験)
このようにして、次の関数に導入
ランダム関数原理を生成することは簡単であり、である:ランダム関数の値が前の値、ランダム関数を決定します。
私たちが知ることができるこの原則によると:最初のランダム関数の値が決定される限り、そして後者は、数字の配列を決定することです。我々は数字の異なる配列を取得したい場合は、我々はと呼ばれる最初のランダム関数値のセットを設定するためのランダム関数の値を決定する必要があり、「ランダムシード。」一度、ランダムシードのセットを知って簡単にできます。
ランダムシードは、の関数として提供される
にsrand(シード)
通常、我々はランダムシード行うには、現在の時刻を使用:
srand関数を((符号なし)時間(NULL));
時間関数を使用するので、これを引用<TIME.H>覚えています。
[描画アプリケーション]
簡単な手順には、画面上のポイントは、任意の色のどこにでも(押して終了し、任意のキーを)塗装しました:
在#include <graphics.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
int main()
{
srand( (unsigned)time( NULL ) );
initgraph(640, 480);
int x, y, c;
while(!kbhit())
{
x = rand() % 640;
y = rand() % 480;
c = RGB(rand() % 256, rand() % 256, rand() % 256);
putpixel(x, y, c);
}
closegraph();
return 0;
}`这里插入代码片