r.next()) `コレクションをシャッフルするロス?
" />
var r = new Random(); var shuffled = ordered.OrderBy(x => r.Next());
<底>基礎となるメカニズム
アルゴリズムは、コレクション内の各要素に乱数を割り当て、これらの数値に基づいて要素をソートします。このプロセスは、要素の順序を効果的にランダムにしますが、これは実際のランダムソート操作ではありません。
<合>より適切なランダムソートメソッド
この方法はランダムなソート結果を生成できますが、効率が低いため、最初の方法ではありません。 Fisher-Yatesランダムソートアルゴリズムは、計算の複雑さが低く、効率が高くなります。さらに、特別なシャッフル拡張方法は、明確で簡潔なランダムソート操作式を提供できます。
Fisher-Yatesアルゴリズムを使用して基本的なシャッフル拡張法を実装するには、以下の手順に従ってください。 入力コレクションは配列に変換されます。
ランダム交換リストの要素を使用します(たとえば、
など)。交換に戻ります。
この方法を使用して、開発者はO(n)の時間の複雑さでコレクションを迅速かつ効果的に並べ替えることができます。<能>パフォーマンスの最適化
以上が`orderby(x => r.next())`コレクションをシャッフルする信頼できる方法ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。