問題タブ [srand]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - Rand() が正しく動作しないようです
重複の可能性:
rand() で常に同じ乱数列を取得するのはなぜですか?
私は C で乱数を生成する実験をしてきましたが、奇妙なことに遭遇しました。それが私のコンパイラだけにあるのかどうかはわかりませんが、 rand() 関数で疑似乱数を生成しようとすると、非常に予測可能な数値が返されます。正確には、前のパラメーターで生成された数値に 3.125 を加えた数値です。説明するのは難しいですが、ここに例を示します。
これは 270 を返します。
これは 273 を返します。
これは 277 を返します。
これは 280 を返します。
8 桁ごとに 4 ずつ高くなります。それ以外は 3 です。
これは正しいとは言えません。コンパイラに何か問題がありますか?
編集:私はそれを理解しました - 私は一度だけシードする関数を作成し、次にループしてrand()
乱数を生成します。皆さん、ありがとうございました!
perl - バージョン 5.004 以降の Perl の srand() デフォルト シードの弱点は何ですか?
time()
Perl バージョン 5.004 より前のバージョンを使用した場合の問題に関するドキュメントはたくさんありますが、それ以降のものはありません。
宿題として、デフォルトの Perlsrand()
にはデフォルトのシード処理にまだ欠陥があるという前提に基づいて、プログラムの結果をリバース エンジニアリングするよう求められます。perl 5.004 リリースの変更ログには、srand()
デフォルトのシードが「予測が困難なシステム依存値の大量混合」に基づいていると記載されています。
もしそうなら、それらの価値は何であり、固有の弱点はありますか?
c - 元のスコアに固執しているが、正常にループしているダイスゲーム
私はCで、2つのサイコロを振って合計を出力するプログラムを書いています。ゲームはとても簡単で、今は関数とループを組み込んでいるので、使用して何度か試行します。問題は、最初の試行後にスコアが変更されないことです。だから私は関数が機能していることを知っていますが、どういうわけかループは物事を捨てています。これが私のコードです:
c - srand (time(NULL)) がループから外れても、数値は一定期間同じです
私はCで簡単なコードを持っていて、真ん中に乱数生成コードがあります..問題は、その数が長期間同じままで、その後1つ上がることです! rand_pick は、C プログラムを 30 回以上実行して 5 になる可能性があり、最終的に 6 に変わります...その理由と、本当にランダムな 1 から 9 桁を生成する別の方法があるかどうかを知りたいと思いました。
どうもありがとう ;)
c++ - 正しくシード乱数ジェネレーター (メルセンヌ ツイスター) c++
くだらないプログラマーであることに加えて、私の専門用語は完璧ではありません。私は自分自身を説明するために最善を尽くすつもりです。randomlib を使用してMersseneツイスター乱数ジェネレーターを実装しました。確かに、私は Visual 8 C++ の乱数ジェネレーターがどのように機能するかについてあまり詳しくありませんが、一度シードするだけで、他のクラスで安全に使用できることがわかりsrand(time(NULL))
ましたmain()
。rand()
私が持っている Merssene ツイスターは、オブジェクトを作成し、そのオブジェクトをシードする必要があります。
クラスで乱数を生成したい場合、毎回オブジェクトを定義せずにこれを行うにはどうすればよいですか。コンピューターの時計を使用すると、実行ごとに同じシードを使用するのではないかと心配しています(毎秒のみ変更されます)。
私は自分自身を正しく説明していますか?
前もって感謝します
c++ - フォークされたプロセス間の乱数は同じです
マネージャー プロセスから複数のプロセスをフォークしています。次に、これらのフォークされたプロセスがリッスンするためのランダムなポート番号を作成したいと思います。ただし、ランダムにシードして乱数を取得すると、3 つのプロセス間で同じ数が取得されます。例えば:
マネジャー:
ルーター:
私はマネージャーでシードを試み、次にプロセスでランドを試みましたが、ランドできるときに同じ数を取得するという同じ問題がまだあります。時間以外でシードしても、ランダムな結果が得られますか?
c++ - random_shuffleは実際にはランダムではありません
私は次のrandom_shuffle
ようなベクトルでを使用しています:
実行すると、デッキの内容が混同されますが、プログラムを再起動すると、この混同された順序が維持されます。
私は何か見落としてますか?どうすればそれを本当にランダムにすることができますか?
c++ - rand () 関数 C++
それぞれ [-45 +45] 度の間の 4 つの乱数を生成する必要があります。rand%2 = 0 の場合、結果が必要です (生成された乱数は -angle に等しくなります)。4 つの乱数が生成されたら、これらの角度をスキャンしてロック (角度が交わる点) を見つける必要があります。また、if ステートメントのループ内の -3、-2、-1、... +3 は、ロックが 6 度のビーム幅内で行われることを示します。コードは機能します。しかし、それは単純化できますか?また、目的は、両方のポイントで仰角と方位角をスキャンすることにより、2 つのポイント間にロックを確立することです。
c - C プログラム - srand()
重複の可能性:
srand を初期化する推奨方法?
c で srand() を使用すると、次の問題が発生します。
loopでsrand(time(NULL)) を呼び出しますが、ループは1秒前に終了し、rand() を呼び出すたびに同じ値が得られます。
どうすればこれを解決できますか?