【发布时间】:2011-06-17 22:48:47
【问题描述】:
我想出的是:
RandomSort()
{
string[] list = { "Alpha", "Beta", "Gamma", ... }
Random rnd = new Random();
string[] list2 = list.OrderBy((x) => rnd.NextDouble()).ToArray();
}
还有其他方法,也许使用Dictionary 或其他方式?谢谢。
【问题讨论】:
-
this question 的精确副本,其中最佳答案实际上不是公认的答案,而是 this one,它具有用于 Fisher-Yates Shuffle aka Knuth Shuffle 实现的 C# 代码。
-
我搜索了随机排序,但没有出现。感谢您的链接。
-
请注意,如果您洗牌的目的是为了制作一副纸牌来玩在线扑克,那么这不是足够随机的。 “随机”只是伪随机;给定一个伪随机洗牌的小样本,预测所有其他牌的顺序是一个简单的练习。如果您需要真正不可预测的随机性,请使用更好的随机性算法,例如加密算法。