タグ付けされた質問 「random」

このタグは、疑似ランダムか真にランダムかに関わらず、乱数とそのジェネレーターに関する質問に使用します。

3
ランダム(Java 7)の181783497276652981および8682522807148012とは何ですか?
なぜ、181783497276652981そして8682522807148012選ばれたのRandom.javaですか? Java SE JDK 1.7の関連するソースコードは次のとおりです。 /** * Creates a new random number generator. This constructor sets * the seed of the random number generator to a value very likely * to be distinct from any other invocation of this constructor. */ public Random() { this(seedUniquifier() ^ System.nanoTime()); } private static …
112 java  random 

8
mt19937 PRNGを簡潔、移植性、完全にシードする方法
私は誰かが<random>乱数を生成するために使用することを提案する多くの答えを見るようです、通常は次のようなコードと共に: std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution<> dis(0, 5); dis(gen); 通常、これは次のようなある種の「不吉な嫌悪」に取って代わります。 srand(time(NULL)); rand()%6; 我々は可能性がある批判侃々諤々で古い方法をtime(NULL)、低エントロピーを提供しtime(NULL)、予測可能であり、最終結果は不均一です。 しかし、それはすべて新しい方法に当てはまります。光沢のあるベニヤしかありません。 rd()単一のを返しますunsigned int。これは、少なくとも16ビット、おそらく32ビットです。MTの19937ビットの状態をシードするのに十分ではありません。 使用してstd::mt19937 gen(rd());gen()(32ビットで播種し、第一の出力を見て)良好な出力分布を与えません。7と13が最初の出力になることはありません。2つの種子は0を生成します。12の種子は1226181350を生成します。(リンク) std::random_device固定シードを持つ単純なPRNGとして実装できます。したがって、実行ごとに同じシーケンスが生成される可能性があります。(リンク)これはさらに悪いですtime(NULL)。 さらに悪いことに、前述のコードスニペットに含まれる問題にもかかわらず、コピーして貼り付けるのは非常に簡単です。これに対するいくつかの解決策は、すべての人に適しているわけではないかもしれない大量の ライブラリを取得する必要があります。 これに照らして、私の質問は、mt19937 PRNGをC ++で簡潔、移植可能、および完全にシードするにはどうすればよいですか? 上記の問題を考えると、良い答え: mt19937 / mt19937_64を完全にシードする必要があります。 だけに頼ることはできないstd::random_deviceか、time(NULL)エントロピーの源として。 Boostや他のライブラリに依存すべきではありません。 少数の行に収まるようにして、回答にコピー貼り付けして見栄えをよくする必要があります。 考え 私の現在の考えは、か​​らの出力をstd::random_device(おそらくXORを介して)マッシュアップしtime(NULL)、アドレス空間のランダム化から派生した値、およびハードコーディングされた定数(配布中に設定できる)を使用して、エントロピーでベストエフォートショットを取得できると考えています。 std::random_device::entropy() ていないものの良い指標を与えるstd::random_deviceか、しない場合がありますが。
112 c++  c++11  random 


17
重複のない乱数のリストを作成するにはどうすればよいですか?
を使ってみましたrandom.randint(0, 100)が、同じ数値でした。リストの一意の乱数を作成するメソッド/モジュールはありますか? 注:次のコードは回答に基づいており、回答が投稿された後に追加されています。これは問題の一部ではありません。それが解決策です。 def getScores(): # open files to read and write f1 = open("page.txt", "r"); p1 = open("pgRes.txt", "a"); gScores = []; bScores = []; yScores = []; # run 50 tests of 40 random queries to implement "bootstrapping" method for i in range(50): # get 40 random queries …
110 python  random 

5
rand()%6がバイアスされているのはなぜですか?
std :: randの使用方法を読んでいるときに、このコードをcppreference.comで見つけました int x = 7; while(x > 6) x = 1 + std::rand()/((RAND_MAX + 1u)/6); // Note: 1+rand()%6 is biased 右の表現の何が問題になっていますか?試してみたところ、完全に機能しました。
109 c++  random  std 

11
範囲内からランダムな整数を生成する方法
これは以前に投稿された質問の続きです: Cで乱数を生成する方法は? サイコロの側面を模倣するために、1から6などの特定の範囲内から乱数を生成できるようにしたいと考えています。 これを行うにはどうすればよいですか?
108 c  random 





2
C ++ 11での乱数生成:生成方法、その仕組み [閉まっている]
ここで何が尋ねられているのかを知るのは難しい。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 8年前に閉鎖。 私は最近C ++ 11で乱数を生成する新しい方法に出くわしましたが、それについて読んだ論文を要約することができませんでした(「エンジン」、「分布」のような数学用語、「生成されたすべての整数が等しく可能性がある」)。 だから誰でも説明できますか 彼らは何ですか? 彼らはどういう意味ですか? 生成する方法? 彼らはどのように機能しますか? 等 乱数生成に関する1つのFAQですべてを呼び出すことができます。
102 c++  c++11  random 



7
加重乱数
加重乱数を実装しようとしています。私は現在、壁に頭をぶつけているだけで、これを理解することはできません。 私のプロジェクト(ホールデムハンドレンジ、主観的なオールインエクイティ分析)では、Boostのランダム関数を使用しています。それで、1と3の間の乱数(つまり、1、2、または3)を選びたいとしましょう。Boostのメルセンヌツイスタージェネレーターは、これの魅力のように機能します。ただし、たとえば次のようにピックに重みを付けたいです。 1 (weight: 90) 2 (weight: 56) 3 (weight: 4) Boostにはこのための機能がありますか?
101 c++  boost  random 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.