問題タブ [prng]
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.
objective-c - ObjectiveCの複数の乱数ジェネレーター
私の現在のプロジェクトでは、互いに独立してシーケンスを繰り返すことができる必要があるため、複数の乱数ジェネレーターが必要です。これまでのところ、標準のObjective-c乱数ジェネレーターを使用してこれを実現する方法は見つかりませんでした。これは、グローバル状態が1つしかないためです。
乱数ジェネレータークラスがあれば問題は解決すると思います。個別にリセットできるインスタンスをいくつか作成できました。
このようなものはすでに利用可能ですか?Objectivecで乱数ジェネレーターの実装を見つけることができませんでした。乱数の経験がなく、うまくいかないので、自分で実装するのは避けたいと思います。
random - L'EcuyerのCUDACのMRG32k3a乱数ジェネレーター?
これを実装するのに問題があります。GPUクラスターでいくつかのモンテカルロシミュレーションを実行したいのですが、乱数ジェネレーターが機能する必要があります。生成された乱数を印刷したい。誰かが例を挙げて説明してもらえますか?私はUNIXで働いています。
ありがとう!
c - ランダムフロート(0,1)にdSFMTを使用
このプロジェクトは、iPhone 用の Obj-C にあります。ここで入手できる sfmt の double float バージョンを使用しています: http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/#dSFMT
dsmft に現在の時刻をシードした後、次のように呼び出しています。
0 と 1 の間のランダムな float を生成します。他にも 2 つのオプションがあります。
ドキュメントで、区別は 0 または 1 側が開いているか閉じているかであり、[0,1)、(0,1]、または (0,1) のように数学的に示されることを知っています。
しかし、これが何を意味するのか、または私のニーズにどちらを使用するのかわかりません。0 と 1 の間で最も均一に分散された float が必要です。
ruby-on-rails - PRNG シードされていないエラー
フォーム認証トークンを生成しようとすると、疑似乱数ジェネレーターがシードされていないという断続的なエラーが発生します。以下のスタック トレースの関連部分をコピーしました。
ここに私が知っている/見ているものがあります:-パッセンジャーを再起動すると問題が一時的に修正されるようです-コンソールから同じコードを実行すると期待どおりに動作します-/ dev/urandomが存在するため、それをシードに使用できるはずです-これはubuntu 10.04で発生しています、openssl 0.9.8k、ree 1.8.7 p253、およびパッセンジャー 3.0.3 を使用します。-ワーカーの再起動時に発生するように聞こえるユニコーンの問題について読んだことがありますが、パッセンジャーで説明されているようなものは見たことがありません。
かなり困惑。どんな助けでも大歓迎です。
cuda - CUDA - ダミーのための CURAND ライブラリの使用
私は CURAND Library API を読んでいましたが、私は CUDA の初心者であり、誰かが実際に CURAND ライブラリを使用して乱数を生成する簡単なコードを表示できるかどうかを確認したかったのです。Discrete Event Simulation で使用する大量の数値を生成することを検討しています。私の仕事は、乱数生成を高速化するために GPGPU を使用するアルゴリズムを開発することです。標準の C 言語プログラミングで、LCG、乗法、およびフィボナッチ メソッドを実装しました。ただし、これらのコードを CUDA に「移植」し、スレッドとブロックを利用して乱数を生成するプロセスを高速化したいと考えています。
リンク 1: http://adnanboz.wordpress.com/tag/nvidia-curand/
その人は、私が必要とする 2 つのメソッド (LCG と Mersenne Twister) を持っていますが、コードには詳細が記載されていません。誰かがこれらの初期実装を拡張して、それらを適切に使用する方法について正しい方向に実際に向けることができるかどうか疑問に思っていました.
ありがとう!
cuda - CURANDライブラリ-コンパイルエラー-関数への未定義の参照
nvccを使用してコンパイルしようとしている次のコードがあります。
コード:
これは私が受け取る出力です:
私の最初の推測では、何らかの理由でCURANDライブラリが正しくインストールされていないか、curand.hヘッダーファイルが見つかりません。
何を探すべきか、問題を解決する方法を教えてください。
ありがとう!
cuda - CUDA コンパイル エラー - リンカーに「include」を追加する必要があります
CUDA Compiler を使用してこのコードをコンパイルしようとしています。
このコマンドを使用して:
これは私が受け取る出力です:
別の議論で、彼らは、この問題はリンカの問題か何かに関連している可能性があり、コンパイラコマンドでライブラリを手動でリンクして、コードに記載されているものを含める必要があると述べました。
これを達成する方法がわかりません。誰かがこれを手伝ってくれますか?
ありがとう!
javascript - 線形合同法のA、C、Mの選択
指定された期間があり、その期間中は衝突がないことが保証されている単純な疑似乱数ジェネレーター(PRNG)を実装しようとしています。いくつかの調査を行った後、私は完璧な非常に有名なLCGに出くわしました。問題は、それを適切に構成する方法を理解するのに苦労していることです。これが私の現在の実装です:
すべてのシード値に対して完全な期間を設定するには、次の条件が満たされている必要があると記載されています。
- cとmは互いに素です
- a-1はmのすべての素因数で割り切れる
- mが4の倍数である場合、a-1は4の倍数です
1と3は、理解とテストが簡単です。しかし、2についてはどうでしょうか、それが何を意味するのか、それをチェックする方法がよくわかりません。そして、Cはどうですか、それはゼロになることができますか?ゼロ以外の場合はどうなりますか?
全体として、 48 ^ 5 -1の期間を持つように、A、C、およびMを選択する必要があります。Mは周期に等しいので、AとCについてはよくわかりません。
ruby - OpenSSL::Random の Ruby のシードは十分ですか?
私はRubyについてほとんど知らないので、これに対する答えが明らかである場合はご容赦ください。http://www.ruby-doc.org/stdlib-1.9.3/libdoc/securerandom/rdoc/SecureRandom.htmlで、random_bytes の呼び出し時に Ruby が pid と現在の時刻を使用して OpenSSL::Random をシードしていることに気付きました作られています。裏で何か別のことが起きない限り、これは Netscape が 90 年代半ばに最初の SSL 実装で使用した種ではないでしょうか? http://en.wikipedia.org/wiki/Random_number_generator_attack#Prominent_examples_of_random_number_generator_security_issues
確かに、Ruby は 18 年前のバグを復活させていません。ここで何が欠けていますか?
編集: random_bytes のソースは次のとおりです。ruby が OpenSSL でコンパイルされているかどうかを確認する最初のチェックに注意してください。この場合、pid と現在の時刻がシードされます。