11

ランダムに並べ替えたいオブジェクトの配列があります。この場合、 を使用できますarray.shuffle。しかし、後で同じアレイでその順序を再現したい場合はどうすればよいでしょうか? このシーケンスを後で再現できるように、シード、乱数などを提供できる方法はありますか?

MongoDB データベース (MongoID を使用) からオブジェクトのランダムなリストを生成したいのですが、そのリストを後で再現する必要があります。しかし、私の知る限り、MongoDB で直接ランダム ソートを実装する良い方法はありません。多くのオブジェクト (>1,000,000) が存在する可能性がありますが、計算時間は最初の試行のためのものであり、重要な事実ではありません。

4

2 に答える 2

2

メソッドのソース ( http://ruby-doc.org/core-2.0/Array.html#method-i-shuffle ) を見ると、Ruby 乱数ジェネレーターに落とし込んでソートしているように見えます。

そうであれば、シードを設定できます

srand *seed number*

スクリプトを実行する前に。私はこれについて 100% ではありませんが、動作しているように見えますが、単体テストを書くことは間違いありません!

于 2013-04-12T15:18:04.940 に答える