ホームページ > よくある問題 > C言語で乱数を生成する方法

C言語で乱数を生成する方法

清浅
リリース: 2020-10-12 16:14:22
オリジナル
94756 人が閲覧しました

C 言語で rand() 関数を使用すると、0 から RAND_MAX (32767) までのランダムな整数を生成できます。乱数は srand() を使用して制御できます。乱数シードを設定するには、デフォルトの乱数シードは 1 です。1 ~ 100 の範囲の乱数を生成したい場合は、「rand() 0」を使用する必要があります。

C言語で乱数を生成する方法

[推奨チュートリアル: C 言語チュートリアル]

C 言語では、rand 関数を使用して乱数を生成できます。 rand 関数は、指定された順序で整数を生成します。ただし、C 言語で生成されるランダム性は真のランダムではなく、疑似乱数と呼ばれることもあります。

rand() を使用して乱数を生成する前に、乱数生成器の初期化関数 srand (符号なしシード) を使用して、擬似乱数シーケンスを初期化する必要があります。シードはランダム シードとも呼ばれます。提供されたシードが毎回同じであれば、各ラウンドで生成される乱数値も同じであるため、それらは擬似乱数と呼ばれ、完全なランダム性を達成するには毎回異なるシード値を提供する必要があります。通常、C 言語では時間値が毎秒異なるため、時間関数 time (null) をシードとして使用します。

例:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    srand(1);
    int i;
    for (i = 0; i < 10; i++)
    printf("%d, ", rand()%11); 
}
ログイン後にコピー

結果は: 8, 9, 9, 1, 7, 5, 5, 10, 1, 0,

上記の結果は何度実行しても同じです。理由はランダムであるためです。シード値は 1

ですが、シード値を time( null) に変更すると、状況は異なります。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    srand(time(NULL));
    int i;
    for (i = 0; i < 10; i++)
    printf("%d, ", rand()%11); 
}
ログイン後にコピー

結果は次のようになります: 6、3、4、5、 5、9、8、10、10、4

もう一度クリックしてください: 6 、4、2、4、3、2、5、1、2、9

ここでは、時間 (null) の影響により、シードは変化し続けます。つまり、新しい乱数が常に生成されます

おすすめ関連記事: JavaScript で乱数を生成する方法

要約: 上記がこの記事の全内容です。お役に立てれば幸いです

以上がC言語で乱数を生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート