ホームページ  >  記事  >  バックエンド開発  >  srand(time(0)) 関数は何を意味しますか?

srand(time(0)) 関数は何を意味しますか?

藏色散人
藏色散人オリジナル
2019-06-06 10:56:4830059ブラウズ

標準ライブラリは、さまざまな数学的手法を使用して擬似乱数を生成する一連の乱数エンジン クラスとアダプターを定義します。標準ライブラリでは、さまざまな確率に従って乱数を生成するための一連の配布テンプレートも定義されています。エンジンとディストリビューション タイプの名前は、その数学的特性に対応しています。

srand(time(0)) 関数は何を意味しますか?

しかし、今日は最も基本的な知識について少し触れておきます。

コンピューターには実際の乱数を生成する方法はなく、アルゴリズム シミュレーションを使用するため、rand を呼び出すだけで、出てくるものは毎回同じになります。シードを設定すると、シードに応じて異なる数値を生成できます。そして、シードが異なることを確認するにはどうすればよいでしょうか?最も簡単な方法は、もちろん、常に前進する時間を利用することです。

srand(time(0)) ;//先设置种子
rand();//然后产生随机数

Srand はランダムに植えられたシードの数です。植えるシードは毎回異なり、Rand を使用して得られる乱数も異なります。毎回異なる種を植えるには、Time(0) を使用します (時刻は刻々と異なるため)。

srand(time(0)) ;このアルゴリズムに起動シードを与えるためのもので、これはアルゴリズムの乱数シード番号です。この数値を取得した後にのみ、乱数を生成できます。 、1970.1.1 を使用 乱数シードが初期化されてからの秒数。

参考事例

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main ( void )
{
    int i;
    
    srand(time(0));
    
    /* 输出 10 个随机数. */
    for (i = 0; i < 10; i++)
        printf( "%6d/n", rand());
}

出力結果:

   22614
   15772
   30620
   24913
    7556
   31659
   27876
   27229
   25083
   16564

関連する推奨事項:「C ビデオ チュートリアル

以上がsrand(time(0)) 関数は何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。