公正な宝くじアプリケーションの作成:C#ジェネリックリストのランダムソート宝くじアプリケーションを開発するための鍵は、リスト要素のランダムな並べ替えを確保することです。この記事では、C#で汎用リストランダムソートを達成するための最良の方法について説明します。 フィッシャー - シャッフルアルゴリズム
<list>
フィッシャー - シャッフルアルゴリズムは、一般的なリストの効率的な破壊の方法です。アルゴリズムは、拡張方法
の使用方法:
IList
このメソッドを任意の
<code class="language-csharp">private static Random rng = new Random(); public static void Shuffle<T>(this IList<T> list) { int n = list.Count; while (n > 1) { n--; int k = rng.Next(n + 1); T value = list[k]; list[k] = list[n]; list[n] = value; } }</code>乱数ジェネレーターの考慮クラスは便利ですが、そのランダム性は不十分な場合があります。ランダム性を向上させるには、:でランダム数ジェネレーターを使用することをお勧めします。
スレッドセキュリティの改善IList
<code class="language-csharp">List<Product> products = GetProducts(); products.Shuffle();</code>マルチスレッド環境で潜在的な問題を回避するために、スレッドセキュリティを改善できます:
これにより、各スレッドが独自の乱数ジェネレーターを使用して競合を回避することが保証されます。
これらの方法により、ジェネリックのジェネリックリストの要素を効果的に並べ替えて、真にランダムな宝くじ宝くじアプリケーションを作成できます。 System.Random
以上が宝くじアプリケーションのC#で一般的なリストを効果的にランダム化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。