どうすればランダムにランダムになるシードやハッシュを生成できますか?番号を選ぶたびに変更する必要があります。 C++の新機能なので、これをどうやって行うのかが正確にはわかりません。ありがとう! :Dランダムシード/ハッシュを実際にランダムに作るにはどうすればいいですか?
6
A
答えて
1
環境データをサンプリングしたり、量子乱数源にアクセスしたりすることなく、「実際にランダムな」乱数発生器はありません。真に乱数(http://qrng.anu.edu.au/FAQ.php#api)が必要な場合は、ANU乱数ソースにアクセスすることを検討してください。
それ以外の場合、ブーストは、ほとんどの目的のために十分でなければならない、より堅牢な擬似RNGを、提供:http://www.boost.org/doc/libs/1_58_0/doc/html/boost_random.html
+3
ブースト・ランダムの多くはC++ 11で標準化されており、 '
5
に使用できるC++ 11 std::random_device
で。包括的なガイドについては、linkをご覧ください。 std::random_device
とstd::mt19937
を使用する代わりに、あなたは決して使用srand
& rand
はずですが、 - ほとんどの場合、次はあなたが望むものを次のようになります:
ビデオリンクから不可欠メッセージを抽出
#include <iostream>
#include <random>
int main() {
std::random_device rd;
std::mt19937 mt(rd());
std::uniform_int_distribution<int> dist(0,99);
for (int i = 0; i < 16; i++) {
std::cout << dist(mt) << " ";
}
std::cout << std::endl;
}
@DevanshMohanKaushik - あなたの提案された複製の参照された質問/回答は、悪い習慣であり、ランダムな麻痺の重複につながる可能性がある、種子として時間の使用を主張するので、悪い示唆です。同時に(Webサーバと考える)プロセス間には、 – Soren
@ sorenもあります。これには、あなたが引用した節を含め、他の有用な回答へのリンクも含まれています。 – Hummingbird
この質問はC++用のもので、重複マークはCを要求しています。 –