ホームページ  >  記事  >  バックエンド開発  >  java_PHP チュートリアルのランダム関数についてのいくつかの理解

java_PHP チュートリアルのランダム関数についてのいくつかの理解

WBOY
WBOYオリジナル
2016-07-12 08:55:091194ブラウズ

Java のランダム関数についてのある程度の理解

random() は、乱数生成がシードに関連しているため、シードが同じである限り、生成される乱数は同じです。シードが指定されていない場合、シード パラメータは現在時刻に基づいて生成されます。実際、Random は疑似乱数であり、同じシードが同じシーケンスを生成することに注意してください。は同じ値ではありません)。
同じシーケンスが生成されると言われるのはなぜですか? ここでは、コンストラクターがシードを設定した後に乱数がどのように生成されるかを理解する必要があります (それが自分で指定されるか、デフォルトでシステムによって生成されるか)。 () 関数は、現在のシードに基づいて乱数を生成します。乱数を生成した後、生成された乱数をシードに割り当て、乱数を生成し続けます。

したがって、次の 2 つのコードを注意深く理解してください

<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>public static void main(String[] args) {<br /></li><li><br /></li><li> for (int i=0;i<10;i++){<br /></li><li> Random r = new Random(10);<br /></li><li>       data = r.nextInt(10);<br /></li><li>System.out.print(rand); <br /></li><li> System.out.print(" ");<br /></li><li> }<br /></li><li> <br /></li><li> }</li></ol>
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>public static void main(String[] args) {<br /></li><li>Random r = new Random(10);<br /></li><li>for (int i=0;i<10;i++){<br /></li><li>data = r.nextInt(10);<br /></li><li>System.out.print(rand);<br /></li><li>System.out.print(" ");<br /></li><li>}<br /></li><li>}</li></ol>
によって生成される 10 個の数字は同じです

rrreee 上記のコードによって生成される 10 個の数字は異なりますが、再度実行すると、生成される 10 個の数字のシーケンスは次のようになります。上記と同じ for ループを複数回実行して生成されるシーケンスは同じです。これは、デフォルトでrandom()によってシードを生成する原理は同じですが、上記をrandom(に置き換えると、 )、forループを複数回実行して生成される乱数は同じになります。実行するたびに時間が異なるため、デフォルトのシードも異なることがわかります。 randan() で乱数を生成することは、真にランダムなシードを持つことです






http://www.bkjia.com/PHPjc/1117248.html

www.bkjia.com

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