2012-05-07 13 views
0

乱数計算にはMKL Intelを使用しています。私は準ランダムアルゴを使用します。また、生成される数字はランダムではないようです。 Quasi random algoは、空間占有を最大化するサンプルポイントを提供することを理解します。したがって、それらは完全に予期せずランダムである必要はなく、空間を適切にカバーするだけでよい。MKLインテルC++および疑似乱数生成器

この数字はランダムな形で使用したいと思います。期待通りの方法で注文しないようにしています。これらの 'ランダム'ポイントを使用する前に、私はそれらを並べ替えます。

私はMKLライブラリを正しく使用していませんか?または、私が言及したように、ポイントは全体のスペースをカバーするものであり、完全なランダムではないため、通常のように聞こえるでしょうか?

MKLまたは疑似ランダムジェネレーションがある場合。そこにユーザー、アドバイス歓迎。

よろしくお願いいたします。

答えて

1

理論上、一様に分布したシーケンスのランダム置換は、無作為抽出の結果となるはずです。 1、2、3、...、nをとり、ランダムに並べ替えれば、ランダムな一様なサンプルが得られます。

ランダム置換アルゴリズムの品質は、結果として得られるサンプルの品質にとって非常に重要になります。

同時に、MKLの準ランダムRNGが必要なのはなぜですか?私にはちょっと残酷に見えます。良い擬似ランダムシーケンスが必要な場合は、MKLからの他のRNGを使用することが理にかなっています。 MT19937またはMT2203またはSFMT19937で、高速で高品質です。あなたは、順列の基礎として準ランダムシーケンスが必要な理由を説明してください。

よろしく、 セルゲイ

+0

私は順列のベースとして乱数生成器を必要といけません。これはここでのポイントではありません。私はMKL疑似ランダムジェネレータを使用していますが、同じシーケンスで数値を返すことに気付きました。私は、このようなジェネレータ(これは適切な意味では「ランダム」ではない)に対してこの動作が期待されるのか、あるいは私がここで適切にMKLを使用しないのかどうか疑問です。ありがとう – octoback

関連する問題